رایموند
5 سال پیش توسط رایموند مطرح شد
14 پاسخ

ارسال اطلاعات از طریق Api

درود دوستان...
من در بخش 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 مورد نظر ارتباط برقرار کرده و در سیستم اصلی ثبت بشه و در آخر به صفحه مورد نظر هدایت بشه...

ممنون میشم جواب بدید...


ثبت پرسش جدید
آرش تقوی
تخصص : برنامه نویس فول استک
@arash.taghavi69 5 سال پیش مطرح شد
0

این جمله ولی چه متغییری بنویسم که کاربری که در فرم اطلاعات... یعنی چی؟ اینکه میگین چه متغیری بنویسم؟
شما اینجا به Api ارتباط برقرار کردید و خب بعدش به جای return کردن مقدار response, ریدایرکت کنید به صفحه ای که میخواین


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
1

متوجه نشدم یک فرم ایجاد میکنید دیگه
الان منظورتون رو از ارتباط نفهمیدم؟
شما یک فرم داری بصورت get یا post دادهای فرم رو به روت => کنترلر=>متد مورد نظر ارسال میکنید و با دریافت request ها اطلاعات به جای متغییرهای میذاری و با soapClient داده رو به سرور ارسال میکنی و بعدش RSTASTUS چک میکنی اگر درست بود یک پیام ریترن میکنی


Reza Jashnsaz
تخصص : مهندس نرم افزار
@rezajashnsaz0011 5 سال پیش مطرح شد
0

@endworld
فک کنم شما سربازی نرفته باشید
گفتن برنامه نویسی بلد نیستی ‌و اعتماد به نفست داغون شد ؟ بیخیال!
تو خدمت روزی ۱۰۰ بار کلمات بی عرضه و احمق و خاک بر سرت و نفهم و حیف نون میشنوی !!!
.
نذار اینقدر راحت تورو بشکنن


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
0

در یک API معقول نیست که شما بجای ریسپانس کاربر رو به جایی Redirect کنی
چون شاید Consumer یا استفاده کنندی این API یک اپلیکیشن موبایل باشه


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
0

@arash.taghavi69
درسته....

@juza66
توی GuzzleHttp کد soapClient وجود نداره...

@rezajashnsaz0011
درود...
سربازی خیلی وقته تمام کردم وکم به این مورد رو به رو شدم..
ولی خب با شنیدن این حرف روحیه آدم رو پایین میاره ...

@ali.bayat
شرکت یه نرم افزار تحت سرور نوشته با زبان سی شارپ و دات نت برای مدیریت واحد های تولیدی به صورت اتوماسیون هست...
این Api از طرف همین نرم افزاره که اطلاعاتی ارسال می کنه در تحت سرور ثبت و در سمت کلاینت نمایش دهد...
برای همین می خواهیم سیستم پشتیبانی مشتریان CRM‌ براش ایجاد کنیم که کاربران رو مدیریت کند...

مدیر فنی به من گفت فرمی که میسازید به Api وصل بشه و بعد کاربری که عضو میشه به صفحه مورد نظر هدایت کنه...بعد اطلاعات کاربری عضو شده در سمت سرور ثبت شده و در آخر در سمت کلاینت نمایش بده که بتوانیم آن را مدیریت کنیم...


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

خوب شما میتونید پنل رو درست کنید..
به فرض برای ساخت کاربر اطلاعات فرم رو به اندپوینت API ارسال کنید و سپس همون اطلاعات رو (یا بهتره یه درخواست GET بزنی و اطلاعات رو دوباره از API بگیری)‌ در صفحه دیگری نمایش بدید


سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
1

GuzzleHttp
یا
soapClient
اینا ابزار هستن برای ارسال درخواست های http


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
0

@ali.bayat
نمونه کد GuzzleHttp در سایت appdividend نوشته شده اینه؟ همین که گفتی...
پیوند : https://appdividend.com/2018/04/17/laravel-guzzle-http-client-example/


رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش مطرح شد
0

درود دوستان...
با این روش سایت 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))

سیدعلی موسوی
تخصص : سی شارپ و پی اچ پی
@juza66 5 سال پیش مطرح شد
0

توی جدول posts یک فیلد داری به نام‌ Uname که نمیتونه null باشه و حتمن باید مقداری داشته باشه، اگر میدونی این فیلد ممکنه بعضی وقت ها یا همیشه null باشه اون تیک nullable توی phpmyadmin و تیبل و فیلد مورد نظرت رو بزن که null هم قبول کنه یا توی مایگریشن جدول posts یک nullable() اخر فیلد بذار

    $table->string('Uname')->nullable()

رایموند
تخصص : مختصص وردپرس - برنامه نویس لار...
@Raymond 5 سال پیش آپدیت شد
0

@juza66

درود...
به nullable تغییر دادم ولی کار نکرد...
واقعا من دیوانه شدم و کدی که نوشتم کار نمی کنه...طرف مدیر فنی گفت این کد اشتباهه و خودت نمی دونه چطور راهنمایی کنه چون PHP بلد نیست

واقعا کسی می تونه براساس این API نمونه کد بزنه و به فرم مورد نظر وصل کنه :|


محمدرضا قمی اویلی
تخصص : لاراول
@ghomi 5 سال پیش آپدیت شد
0

دوست عزیز نرم افزار انی دسک داری ؟
آیدی بفرست به صورت انلاین چک کنم.
یا اگه پروژه روی سرور یا هاست هست آدرس بده با پست من چک کنم
واتس آپ هم روی این شماره فعال 09360786272


میلاد هدایت پور
تخصص : در حال پیشرفت
@miladparsi1070 5 سال پیش مطرح شد
0

@endworld اروری که میگیرید نشون میده توی api مشکلی نیست که! زمانی که میخاین اطلاعات رو داخل دیتابیستون ذخیره کنید مشکل دارید
اون فیلد رو nullable کنید و براش مقدار دیفالت null هم بزارید
بعد migration هاتون رو دوباره اجرا کید که اعمال بشن و بعدش نباید این ارورو بگیرید دیگه


0

توضیح تصویر رو وارد کنید

دوستان این ارور مربوط به چی میشه


برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام