如何在Swagger中为body提供多个参数

时间:2017-11-04 07:15:38

标签: rest wcf swagger

所以我对如何传递数据有疑问。

这是我的WCF休息方法

  [WebInvoke(UriTemplate = "/GetCustomFieldValues",
            Method = "POST",
            RequestFormat = WebMessageFormat.Json,
            ResponseFormat = WebMessageFormat.Json,
            BodyStyle = WebMessageBodyStyle.Wrapped)]
        Dictionary<string, Object> GetCustomFieldValues(string pwaUrl, string projectUid, List<string> customFieldNames);

On Swagger这是我的宣言

/GetCustomFieldValues:
    post:
      parameters:
        - name: Param
          in: body
          description: The custom field value you want to get
          required: true
          schema:
            $ref: "#/definitions/GetCustomFieldValues"
      responses:
        200:
          description: Getting custom field value using name
      summary: GetCustomFieldValues
      description: GetCustomFieldValues
      operationId: GetCustomFieldValues 
definitions:
  GetCustomFieldValues:
    type: object
    properties: 
      pwaUrl:
        type: string
      projectUid:
        type: string 
      customFieldNames:
        type: array 
        items: 
          type: string

当我使用Advanced Rest Client或Powershell时,该方法有效,唯一的区别是我如何组装身体。

对于Swagger,我需要使用一个定义,因为我不能在body上做多个参数。

我也把它放在招摇的顶端

schemes:
  - http
consumes: 
  - application/json
produces:
  - application/json

1 个答案:

答案 0 :(得分:0)

关于WCF的奇怪之处,

CORS需要同时是Global.asx和web.config,这适用于我的 CORS enabled but response for preflight has invalid HTTP status code 404 when POSTing JSON