当前位置: 首页 > 知识库问答 >
问题:

在openAPI中基于查询参数指定RESTful API响应

申屠泳
2023-03-14

我正在为一个项目设计openAPI规范。该项目是一个REST API,提供有关酒店的信息。

/hotels/{hotelId}?detail={detailLevel}
{
  "name": "Hilton Grand Vacations on the Las Vegas Strip"
  "streetAddress": "2650 Las Vegas Blvd S",
  "city": "Las Vegas",
  "state": "NV",
  "zipCode": 89109
  "rating": 4.4,
  "minimumPrice": 125,
  "availableRooms": 10,
}

如果detail=summary,响应应该如下所示:

{
  "name": "Hilton Grand Vacations on the Las Vegas Strip",
  "rating": 4,
  "zipCode": 89109,
  "available": true
}

我不希望有一个涵盖这两种响应的规范,因为我希望基于其URL参数验证任何给定的响应(例如,Detail=Robust“available”不应该是字段)。到目前为止,我还没能找到一种基于查询参数在openAPI中指定不同返回行为的方法。

是否有一种基于查询参数指定行为的方法?或者,我是否应该将APIendpoint更改为/hotels/{hotelId}/{detailLevel}

共有1个答案

壤驷向明
2023-03-14

令我失望的是,我了解到openAPI不支持使用查询参数来区分具有相同路径的endpoint。

我将把路径指定为/hotels/{hotelId}/{detailLevel}

 类似资料:
  • 我正在尝试正确定义 OpenAPI 规范,以便从该规范生成 api 客户端。我已经解决了一个问题,即我们有一个复杂的查询对象,其中包含嵌套对象和对象数组,用于获取 GET 路由。 让我们以这些类为例。 和一个带有@Query decorator的get请求。 我得到的是。 我还尝试通过添加@ApiQuery装饰器来定义查询参数,它几乎可以工作。 - 但是现在我正在将重复的查询定义混入一个。有没有办

  • 这是唯一的解决办法吗:

  • 您可以在路由驱动的控制器上指定查询参数,这些控制器可以绑定到URL中,并通过在控制器上声明它们以使它们处于活动状态来配置查询参数。 您可以通过定义数组的query parameterfilter的计算属性来显示模板。 语法 (Syntax) Ember.Controller.extend ({ queryParams: ['queryParameter'], queryParamete

  • 我有一个这样的endpoint: 在这里,是向用户公布的关键字。但是和是任意参数。对于另一个资源,如,任意参数可以是。 在 openapi 规范中,我有 我正在使用代码生成插件 ,在服务器控制器中,我想捕获所有任意参数。如何扩展我的 openapi 规范以使参数超出。如果有一种方法可以在单个数组中获取所有查询参数,那也将有所帮助。

  • 假设我有一个URL,其路径为: 如何将其转换为大摇大摆的文档,具体地说,将对象数组和数组作为查询参数。