У меня есть основной проект asp.net, который использует NSwag в качестве инструмента Swagger.
У меня проблема в следующем:
- У меня есть класс Dto, описывающий сущность Collection :
#
namespace SchedulerApi.Entities
{
public class JobCollectionDtoV2
{
[Required]
[FromRoute]
[RegularExpression("^[a-z][a-z0-9]+$")]
[StringLength(maximumLength: 24, MinimumLength = 3)]
public string Collection { get; set; }
[Required]
[FromRoute]
[RegularExpression("^[a-z][a-z0-9]+$")]
[StringLength(maximumLength: 24, MinimumLength = 3)]
public string Tenant { get; set; }
}
}
- Следующий API используется для добавления Коллекции :
#
[HttpPut]
[Route("tenants/{tenant}/collections/{collection}")]
[SwaggerResponse(typeof(JobCollectionDtoV2))]
public async Task<IActionResult> CreateTask(JobCollectionDtoV2 collectionParams)
{
}
- Это файл Swagger, который генерирует NSwag:
#
{
"put": {
"tags": [
"JobCollectionsControllerV2"
],
"operationId": "JobCollectionsControllerV2_CreateTask",
"consumes": [
"application/json-patch+json",
"application/json",
"text/json",
"application/*+json"
],
"parameters": [
{
"type": "string",
"name": "Collection",
"in": "path",
"required": true,
"maxLength": 24,
"minLength": 3,
"pattern": "^[a-z][a-z0-9]+$",
"x-nullable": true
},
{
"type": "string",
"name": "Tenant",
"in": "path",
"required": true,
"maxLength": 24,
"minLength": 3,
"pattern": "^[a-z][a-z0-9]+$",
"x-nullable": true
},
{
"name": "CollectionDetails",
"in": "body",
"required": true,
"schema": {
"$ref": "#/definitions/JobCollectionDetails"
},
"x-nullable": false
}
],
"responses": {
"200": {
"x-nullable": true,
"description": "",
"schema": {
"$ref": "#/definitions/JobCollectionDtoV2"
}
}
}
}
}
В частности, проблема, с которой я столкнулся, вызвана тем, что путь объявляет две переменные tenant
и collection
строчными, а класс DTO объявляет соответствующие свойства с прописными буквами Tenant
и Collection
.
Я надеюсь найти способ украсить свойства класса DTO атрибутом, который будет явно объявлять имя параметра, что-то вроде [JsonProperty("collection")]
(этот конкретный не влияет на вывод Swagger).
Ценю вашу помощь