درود دوستان...
من در بخش API لاراول متبدی هستم و در شرکتی کار می کنم مجبور هستم یاد بگیرم و پروژه لاراول براش بنویسم :(
شرکت یه پروژه Api به من داده بود که گفته یکی از Api باید پیاده کنید که کاربری که عضو میشه اطلاعات رو ارسال کنه و در سیستم ثبت شده و بعد از تایید آن به صفحه مورد نظر لاراول هدایت بشه...
در لینک مجموعه پارامترهایی برای ارتباط با فرم وجود داره که هنگامی صفحه عضویت ساختم باید بهش وصل کنم همین طور که عضویت و لوگین هست..
یه کنترلر ایجاد کردم و کد مورد نظر نوشتم:
// /Api\PostController
public function store(Request $request)
{
$client = new Client();
$url = "http://localhost/";
$request = $client->post($url,
array(
'form_params' => array(
'Uname' => 'test',
'Cuname' => 'Tests',
'Cufam' => 890876,
'uid' => 87659,
'utejariname' => 'Simot',
'Arm' => "",
'Adress' => 'Tehran',
'Telphone' => 21762345,
'Mobile' => 92126587,
'Email' => 'test@gmail.com',
'Username' => 'Cy',
'password' => 98976,
'Ucode' => 98988,
'Server' => 'https://cytus.ir',
'Dbname' => 'Testss',
'MakeDbs' => "",
'SetDbs' => "",
'MakeTbls' => "",
'PerCode' => 989,
'Token' => "",
)
)
);
//$response = $request->getStatusCode();
//$response = $request->getHeaderLine('content-type');
$response = $request->getBody();
$response = json_decode($response);
return response()->json($response);
}
اینم مسیر کنترلر:
Route::get('/store/1', 'Api\PostController@store');
خروجی:
[
{
"SabtTime": "",
"SabtDate": "",
"ERESULTCODE": "",
"RSTASTUS": "OK",
"RESULTMSG": "0"
}
]
خب خروجی نشون میده ارتباط با Api اوکیه ولی چه متغییری بنویسم که کاربری که در فرم اطلاعات مورد نظر رو پر کرد با کلیک بر دکمه عضویت به Api مورد نظر ارتباط برقرار کرده و در سیستم اصلی ثبت بشه و در آخر به صفحه مورد نظر هدایت بشه...
ممنون میشم جواب بدید...
این جمله ولی چه متغییری بنویسم که کاربری که در فرم اطلاعات... یعنی چی؟ اینکه میگین چه متغیری بنویسم؟
شما اینجا به Api ارتباط برقرار کردید و خب بعدش به جای return کردن مقدار response, ریدایرکت کنید به صفحه ای که میخواین
متوجه نشدم یک فرم ایجاد میکنید دیگه
الان منظورتون رو از ارتباط نفهمیدم؟
شما یک فرم داری بصورت get یا post دادهای فرم رو به روت => کنترلر=>متد مورد نظر ارسال میکنید و با دریافت request ها اطلاعات به جای متغییرهای میذاری و با soapClient داده رو به سرور ارسال میکنی و بعدش RSTASTUS چک میکنی اگر درست بود یک پیام ریترن میکنی
@endworld
فک کنم شما سربازی نرفته باشید
گفتن برنامه نویسی بلد نیستی و اعتماد به نفست داغون شد ؟ بیخیال!
تو خدمت روزی ۱۰۰ بار کلمات بی عرضه و احمق و خاک بر سرت و نفهم و حیف نون میشنوی !!!
.
نذار اینقدر راحت تورو بشکنن
در یک API معقول نیست که شما بجای ریسپانس کاربر رو به جایی Redirect کنی
چون شاید Consumer یا استفاده کنندی این API یک اپلیکیشن موبایل باشه
@arash.taghavi69
درسته....
@juza66
توی GuzzleHttp کد soapClient وجود نداره...
@rezajashnsaz0011
درود...
سربازی خیلی وقته تمام کردم وکم به این مورد رو به رو شدم..
ولی خب با شنیدن این حرف روحیه آدم رو پایین میاره ...
@ali.bayat
شرکت یه نرم افزار تحت سرور نوشته با زبان سی شارپ و دات نت برای مدیریت واحد های تولیدی به صورت اتوماسیون هست...
این Api از طرف همین نرم افزاره که اطلاعاتی ارسال می کنه در تحت سرور ثبت و در سمت کلاینت نمایش دهد...
برای همین می خواهیم سیستم پشتیبانی مشتریان CRM براش ایجاد کنیم که کاربران رو مدیریت کند...
مدیر فنی به من گفت فرمی که میسازید به Api وصل بشه و بعد کاربری که عضو میشه به صفحه مورد نظر هدایت کنه...بعد اطلاعات کاربری عضو شده در سمت سرور ثبت شده و در آخر در سمت کلاینت نمایش بده که بتوانیم آن را مدیریت کنیم...
خوب شما میتونید پنل رو درست کنید..
به فرض برای ساخت کاربر اطلاعات فرم رو به اندپوینت API ارسال کنید و سپس همون اطلاعات رو (یا بهتره یه درخواست GET بزنی و اطلاعات رو دوباره از API بگیری) در صفحه دیگری نمایش بدید
@ali.bayat
نمونه کد GuzzleHttp در سایت appdividend نوشته شده اینه؟ همین که گفتی...
پیوند : https://appdividend.com/2018/04/17/laravel-guzzle-http-client-example/
درود دوستان...
با این روش سایت appdividend گفته شده رو پیش رفتم و خطای زیر را دریافت می کنم...
مشکل کجاست؟
Illuminate\Database\QueryException
SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'Uname' cannot be null (SQL: insert into `posts` (`Uname`, `Cuname`, `Cufam`, `uid`, `utejariname`, `Arm`, `Adress`, `Telphone`, `Mobile`, `Email`, `Username`, `password`, `Ucode`, `Server`, `Dbname`, `MakeDbs`, `SetDbs`, `MakeTbls`, `PerCode`, `Token`, `updated_at`, `created_at`) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, 2020-04-20 20:14:20, 2020-04-20 20:14:20))
توی جدول posts یک فیلد داری به نام Uname که نمیتونه null باشه و حتمن باید مقداری داشته باشه، اگر میدونی این فیلد ممکنه بعضی وقت ها یا همیشه null باشه اون تیک nullable توی phpmyadmin و تیبل و فیلد مورد نظرت رو بزن که null هم قبول کنه یا توی مایگریشن جدول posts یک nullable() اخر فیلد بذار
$table->string('Uname')->nullable()
درود...
به nullable تغییر دادم ولی کار نکرد...
واقعا من دیوانه شدم و کدی که نوشتم کار نمی کنه...طرف مدیر فنی گفت این کد اشتباهه و خودت نمی دونه چطور راهنمایی کنه چون PHP بلد نیست
واقعا کسی می تونه براساس این API نمونه کد بزنه و به فرم مورد نظر وصل کنه :|
دوست عزیز نرم افزار انی دسک داری ؟
آیدی بفرست به صورت انلاین چک کنم.
یا اگه پروژه روی سرور یا هاست هست آدرس بده با پست من چک کنم
واتس آپ هم روی این شماره فعال 09360786272
@endworld اروری که میگیرید نشون میده توی api مشکلی نیست که! زمانی که میخاین اطلاعات رو داخل دیتابیستون ذخیره کنید مشکل دارید
اون فیلد رو nullable کنید و براش مقدار دیفالت null هم بزارید
بعد migration هاتون رو دوباره اجرا کید که اعمال بشن و بعدش نباید این ارورو بگیرید دیگه
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟