Как передать массив объектов, используя строку запроса в SwaggerUI - PullRequest
1 голос
/ 11 апреля 2019

Как передать массив объектов, используя строку запроса в SwaggerUI?Когда я использую PostMan с запросом http://localhost:50353/contacts/filter?filters[0].PropertyName=name&filters[0].Operator=Equal&filters[0].Value=18, он работает правильно, но когда я использую SwaggerUI , он связывает пустую модель и передает строку запроса следующим образом: {? Filters = filters% 5B0% 5D.PropertyName% 3Dname% 26filters% 5B0% 5D.Operator% 3DEqual% 26filters% 5B0% 5D.Value% 3D18 & Filters =}

    [HttpGet]
    [Route("/contacts/filter")]
    [ValidateModelState]
    [SwaggerOperation("PostContactFilter")]
    [SwaggerResponse(statusCode: 200, type: typeof(List<Contact>), description: "Successful contact request")]
    [SwaggerResponse(statusCode: 204, type: typeof(Contact), description: "No content")]
    public virtual IActionResult GetContacts([FromQuery]FiltersModel filtersModel)
    {
        var result = _logic.GetContacts(filtersModel);
        if (result is null || result.Count == 0)
            return NoContent();
        else
            return Ok(result);
    }

json:

"/contacts/filter": {
        "get": {
            "tags": [
                "Contacts"
            ],
            "summary": "gets contacts",
            "description": "Return contact",
            "operationId": "GetContacts",
            "consumes": [],
            "produces": [
                "text/plain",
                "application/json",
                "text/json"
            ],
            "parameters": [
                {
                    "name": "Filters",
                    "in": "query",
                    "required": false,
                    "type": "array",
                    "items": {},
                    "collectionFormat": "multi",
                    "uniqueItems": false
                },
                {
                    "name": "Offset",
                    "in": "query",
                    "required": false,
                    "type": "integer",
                    "format": "int32"
                },
                {
                    "name": "Limit",
                    "in": "query",
                    "required": false,
                    "type": "integer",
                    "format": "int32"
                },
                {
                    "name": "api-version",
                    "in": "header",
                    "description": "The requested API version",
                    "required": false,
                    "type": "string",
                    "default": "1.0"
                }
            ],
            "responses": {
                "200": {
                    "description": "Successful contact request",
                    "schema": {
                        "uniqueItems": false,
                        "type": "array",
                        "items": {
                            "$ref": "#/definitions/blabla.Contact"
                        }
                    }
                },
                "204": {
                    "description": "No content",
                    "schema": {
                        "$ref": "#/definitions/blabla.Contact"
                    }
                }
            },
            "deprecated": false
        }
...