gpt4 book ai didi

路由的 REST API 最佳实践

转载 作者:行者123 更新时间:2023-12-04 10:48:05 33 4
gpt4 key购买 nike

我想知道当订单是资源时,为以下场景创建 REST API 的最佳实践是什么:

  • 获取数据库中的所有订单。 (肯定不是实际场景,仅供理解)
  • 通过订单 ID 获取订单。
  • 通过订单 ID 获取单个订单

  • • 是否可以将单个 GET 路由用于所有这些场景?

    • 或者我们应该为这些场景设置单独的路由?

    任何帮助将非常感激!! (如果重要,则使用 E​​xpress JS 框架)

    最佳答案

    RESTful API 使用 HTTP 方法作为动词。这意味着将使用相同的端点来获取订单列表并创建一个新的订单;或获得一个特定的订单,更新它或事件删除它。

    考虑到这一点,您可以按如下方式设计 API 结构:

    GET       /orders        // To get a list of all orders
    GET /orders/:id // To get information about a specific order

    这将帮助您轻松添加更多方法,而无需更改 API 设计:
    POST     /orders         // To create a new order
    PUT /orders/:id // To update that specific order
    DELETE /orders/:id // To delete it

    如果您想在端点上添加搜索功能,使用查询字符串是很常见的。举些例子:
    GET   /orders?email=john@example.org  // To retrieve all orders from that customer
    GET /orders?limit=10 // To retrieve only 10 hits per results
    GET /orders?limit=10&total=99.99 // To retrieve top 10 orders with a total of 99.99

    您可以添加专用搜索参数以按 ID 返回订单(按要求),但这并不常见,因为您已经可以使用端点 /orders/:id 按 ID 进行查询。 .您可能会考虑在此处避免额外的请求,但一般而言,性能提升非常低 - 除非您的应用程序通过 ID 检索多次点击对您的应用程序至关重要。

    关于路由的 REST API 最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59608660/

    33 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com