API Laravel 回复而不是另一个 API Laravel
Posted
技术标签:
【中文标题】API Laravel 回复而不是另一个 API Laravel【英文标题】:API Laravel replies instead of an another API Laravel 【发布时间】:2018-07-22 23:26:30 【问题描述】:我现在用 Laravel 开发了两个小应用程序(两个不同的项目)。
数据库中的第一批订单。此应用程序有一个 API,可通过 GET 返回对象顺序。
例子:
在 Postman 中,我调用:http://payment.oo/api/orders/15。我的 API 对此作出响应,这对我来说没问题。
"id": 15,
"client_name": "Mr Doe",
"price": 330.45,
"created_at": "2018-02-07 14:54:07",
"state_id": 2
api.php中该函数的代码
Route::post('/orders/id', function($id)
$order = Order::find($id);
if($order)
return response()
->json($order);
else
abort(404);
);
第二个应用商店也订购并调用第一个应用的API来了解支付状态。
所以,在第二个应用程序中,我将支付 ID 存储在数据库中,然后用 Guzzle 调用第一个应用程序的 API,像这样
$order = Order::findOrFail($id);
$client = new Client([
'base_uri' => 'http://payment.oo/api/',
// You can set any number of default request options.
'timeout' => 2.0,
]);
$response = $client->request('GET', 'orders/'.$order->payment_id);
那时我遇到了一个我不明白的大问题。
对该API请求的响应对应于第二个应用程序的数据库的命令顺序。
"id":15,
"client_name":"Mr Doe",
"created_at":"2018-02-08 15:02:16",
"take_at":null,
"finish_at":null,
"state_id":1,
"delivery_type_id":1,
"user_id":null,
"payment_id":30
我使用类似 Laragon 的开发网络服务器
对不起,如果我不够清楚:/ 感谢您的帮助
【问题讨论】:
【参考方案1】:很明显,您将路由定义为 POST
,但您使用 Guzzle 客户端请求使用 GET
调用它。
解决方案:无论是在客户端调用中将方法更改为POST
,还是在第一个项目路由文件中将Route设置为GET
路由。
【讨论】:
以上是关于API Laravel 回复而不是另一个 API Laravel的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Laravel 中将我的 API 端点路由为 api.domain.com 而不是 domain.com/api
Laravel API resourceCollection 使用数组而不是模型
Laravel 5.4 POST 到 API 重定向 302 而不是返回验证错误
phpunit 测试资源 laravel 5.5 返回集合而不是 json