【发布时间】:2019-06-12 23:00:17
【问题描述】:
我正在寻找为使用网络应用的客户创建公共 API 访问的方法。
API 应允许客户远程下订单。
处理 API 身份验证的最佳方式是什么?关于如何更好地处理请求/返回响应是否有任何通用规则(最佳实践)?
注意:当前的 Web 应用已经在使用 API 和 JWT 进行常规用户身份验证。
【问题讨论】:
-
Laravel 文档有你想要的所有答案。它基本上就是为此而设计的。
我正在寻找为使用网络应用的客户创建公共 API 访问的方法。
API 应允许客户远程下订单。
处理 API 身份验证的最佳方式是什么?关于如何更好地处理请求/返回响应是否有任何通用规则(最佳实践)?
注意:当前的 Web 应用已经在使用 API 和 JWT 进行常规用户身份验证。
【问题讨论】:
许多大型 API 都遵循“OpenApi”标准,这有助于让任何开发人员都能轻松理解您的 API。您可以严格遵循这一点,但即使您不尝试实现一些基本功能,人们也将能够快速使用您的 API。
例如:以应有的方式使用 GET、POST、PUT、DELETE.. 听起来很简单,但我见过许多实现,其中 GET 用于每个请求。这当然可行(如果您以这种方式构建它),但更容易出错并且您需要比必要更多的端点。
还有: 用户清除端点的名称和结构。
api.website.com/tickets/[ID 例如。 12]
api.website.com/orders/[ID 例如。 354]
现在,如果作为开发人员,我想获得一张 ID 为 76 的发票...我现在可以猜到端点:api.website.com/invoices/76
如果我想获取我使用 GET api.website.com/invoices/76 的数据
如果我想更新发票,我使用 PUT api.website.com/invoices/76
使用的来源:
https://swagger.io/blog/api-design/api-design-best-practices/ https://swagger.io/resources/articles/best-practices-in-api-documentation/ https://blog.mwaysolutions.com/2014/06/05/10-best-practices-for-better-restful-api/
【讨论】:
我建议看看 laravel api:Click here,使用 Eloquent 资源。对于身份验证,我建议使用 Laravel Passport ,Passport 也使用 JWT 令牌进行身份验证,而且设置起来非常简单,只需 10 分钟。 只需在 routes/api.php 文件中定义您的 api 端点,使用 Eloquent Resources 就可以了。 希望我的回答能帮到你。
【讨论】: