【问题标题】:How to pass method name as query string in URL when executing REST api?执行 REST api 时如何在 URL 中将方法名称作为查询字符串传递?
【发布时间】:2018-02-13 19:03:20
【问题描述】:

我正在使用 REST api,我想通过在 REST 客户端中调用它们来测试这些 API(我正在使用邮递员)

http://localhost/flat_booking_again/api/api.php

上面是我所有api所在的url,我想通过像这样在url中传递api名称来调用特定的api

http://localhost/flat_booking_again/api/api.php?method=insertBooking

谁能帮我解决这个问题?

如果这个问题看起来很愚蠢,我对使用 Web 服务 api 还很陌生。任何帮助是极大的赞赏。谢谢 !

【问题讨论】:

  • 您可以从位于 URL 栏之前的 postman 的下拉列表中选择 HTTP 方法。默认情况下,将选择 GET 方法。你可以的。
  • URI 必须是名词,而不是动词。阅读此快速参考:gist.github.com/odan/1d2ef018adb3ea5a0d3abb35406d2c65
  • 我怀疑,像许多人一样,您实际上拥有的是一个 RPC API,这很好,但它不是 REST。但是如果我们忽略“REST”部分,这个问题仍然没有意义。你有什么问题?如何将该 URL 输入 Postman?如何从查询字符串中读取method参数?如何构造您的 PHP 代码,以便该参数选择要运行的操作?如何测试一些您没有向我们展示的现有 PHP 代码?
  • @IMSoP 我无法从查询字符串中读取method 参数。
  • 可以用$method = $_GET['method'];读取method参数。

标签: php rest api postman


【解决方案1】:

其余 API 的理念与 SOAP WS 不同。

在 REST 架构的情况下,您必须将您的服务视为 CRUD 服务。 Create 等价于 POST 动词 阅读是用 GET 动词做的。 更新 => 放置 删除 => 删除。

在您的情况下,您的 URL msut 设计您的对象而不是您的服务。 为了面向对象的利益,方法的概念消失了。

看这个例子:https://en.wikipedia.org/wiki/Representational_state_transfer

【讨论】:

    【解决方案2】:

    您误解了什么是 REST API。您可能应该继续阅读它。这个video 将帮助您。

    在 REST API 中,您不使用方法名称来插入预订。

    您将向http://localhost/api/bookings 执行PUT 请求以插入预订。

    REST API 基于约定,由各种 HTTP 方法触发。

    如果您想使用 booking 对象,那么您将有一个 api 端点,如下所示:

    http://localhost/api/bookings

    然后您将使用 HTTP 方法来触发端点上的操作。

    PUT    - /bookings/1    - Update booking with id 1
    POST   - /bookings      - Create new booking
    DELETE - /bookings/1    - Remove a booking with id 1
    GET    - /bookings/1    - Get booking with id 1
    GET    - /bookings      - List all booking
    

    您可以使用一些 REST API 库来创建实现您的路由和 API。

    【讨论】:

    • 我知道。但是我需要从 api.php 文件中调用特定的 api 来测试它们。我想知道如何向 REST 客户端(如邮递员)指定要调用的 api。
    • 在调用rest api之前,你需要一个rest api。您的 API 并不平静。我建议你阅读一下。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 1970-01-01
    • 2020-10-19
    • 2020-11-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多