php - 使用 Swagger/OpenAPI 规范指定要作为 GET 参数发送的数组

标签 php rest http swagger openapi

下面的 swagger 定义:

swagger: '2.0'
host: example.com
paths:
  /theResource:
    get:
      parameters:
        - $ref: '#/parameters/fields'
parameters:
  fields:
    name: fields
    description: Fields to return
    in: query
    type: array
    collectionFormat: multi
    uniqueItems: true
    items:
      type: string
      enum:
        - column1
        - column2
        - column3

会生成如下URL,服务器只会接收到等于column3fields

http://example.com/theResource?fields=column1&fields=column2&fields=column3

如何更改它以便它在参数中发送一个数组?例如:

http://example.com/theResource?fields[]=column1&fields[]=column2&fields[]=column3

最佳答案

在 PHP 中你可以使用 http_build_query ,这将为您构建正确的 URL 查询部分。

<?php

$query = http_build_query([
    'fields' => [
        'one', 'two', 'three'
    ],
]);

$url = "https://example.com/?".$query;

是的,fields[] 语法应该可以解决问题。

关于php - 使用 Swagger/OpenAPI 规范指定要作为 GET 参数发送的数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39795367/

相关文章:

rest - RFC - 404 或 400 用于在 PUT 请求中找不到实体的关系

rest - 将 REST 请求与异步服务器中的响应相匹配

php - Mysql 将时间分割为查询中的时间段

php - 使用 simple_html_dom 结果删除 h1 的类和样式

php - 如何每隔一分钟将当前值加2?

用于集成 WSDL、REST 等的 Java 框架

php - 为什么我的 RegExp 返回 false 且字符数正确?

android - 从 Android 客户端通过 HTTP 在 HL7 消息中发送 base64 字符串时遇到错误

rest - 已验证但未授权的 HTTP 状态代码?

http - 如何使用 curl 发送换行符?