Controller: < /p>
Code: Select all
public class RecordsController : ControllerBase
{
[HttpGet]
[Route("services/records")]
public async Task Records([FromQuery] QueryModel queryModel)
{
return null;
}
}
< /code>
Eingabemodell - Abfragezeichenfolge: < /p>
public class QueryModel
{
public int Page { get; set; }
public int Count { get; set; }
public Dictionary Conditions { get; set; }
}
< /code>
Swagger UI zeigt dieses Format für die Eigenschaft "Bedingungen" auf Abfragemodell: < /p>
{
"UserId": "string",
"GroupId": "string",
"RecordId": "string"
}
< /code>
Swagger generierte URL - Öffnen Sie API V2 - Es ist nicht an "Bedingungen" gebunden < /p>
/services/records?Page=0&Count=5&Conditions={"UserId":"1"}
< /code>
Swagger generierte URL - Öffnen Sie API v3 - Es ist nicht an "Bedingungen" gebunden < /p>
/services/records?Page=0&Count=5&UserId=1
Code: Select all
/services/records?Page=0&Count=5&Conditions[UserId]=1
So erzwingen Sie Swagger, um URL wie PropertyName [Schlüssel] zu rendern. Way, Swagger erstellt eine korrekte URL. < /p>
Code: Select all
{
"Conditions[UserId]": "1",
"Conditions[GroupId]": "2"
}
< /code>
URL ist jetzt korrekt und ordnungsgemäß an das Modell < /p>
gebunden/services/records?Page=0&Count=5&Conditions[UserId]=1&Conditions[GroupId]=2