【问题标题】:How to create a public API system for an existing Laravel App如何为现有的 Laravel 应用创建公共 API 系统
【发布时间】:2019-06-12 23:00:17
【问题描述】:

我正在寻找为使用网络应用的客户创建公共 API 访问的方法。

API 应允许客户远程下订单。

处理 API 身份验证的最佳方式是什么?关于如何更好地处理请求/返回响应是否有任何通用规则(最佳实践)?

注意:当前的 Web 应用已经在使用 API 和 JWT 进行常规用户身份验证。

【问题讨论】:

  • Laravel 文档有你想要的所有答案。它基本上就是为此而设计的。

标签: laravel api


【解决方案1】:

许多大型 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/

【讨论】:

  • 正是我想要的!谢谢!
【解决方案2】:

我建议看看 laravel api:Click here,使用 Eloquent 资源。对于身份验证,我建议使用 Laravel Passport ,Passport 也使用 JWT 令牌进行身份验证,而且设置起来非常简单,只需 10 分钟。 只需在 routes/api.php 文件中定义您的 api 端点,使用 Eloquent Resources 就可以了。 希望我的回答能帮到你。

【讨论】:

  • 我知道 Laravel API 是如何工作的。整个网站基于 Laravel API。我只是不确定这些事情的最佳实践是什么。我看到很多在线 API 都有相似之处,但我找不到任何包含所有要求/最佳实践的“指南”。
猜你喜欢
  • 2021-12-02
  • 2020-08-18
  • 2014-01-17
  • 2016-12-24
  • 2010-11-14
  • 2019-06-20
  • 1970-01-01
  • 1970-01-01
  • 2015-08-16
相关资源
最近更新 更多