У меня есть проект веб-API .Net Core 5 (C#), в котором я добавил и настроил Swagger.Net. Все работает нормально, но теперь клиент попросил меня добавить «пользовательский атрибут» в файл OAS, чтобы указать, что API еще не готовы к производству:
x-acme-production-ready=false
На сегодняшний день я всегда предоставляю файл JSON, автоматически создаваемый Swagger.
Как я могу создать файл OAS с такой структурой:
openapi: "3.0.0"
# REQUIRED - Formal commitments from the API focal point
x-acme-api-commitments:
api-100: We commit to providing a proper valid OpenAPI (swagger) specification file for each API change.....
# REQUIRED - List of versions changes
x-acme-api-changelog:
- version: 1.0.0
changes: Add GET /example
- version: 1.1.0
changes: Add POST /example
info:
# REQUIRED - Functional descriptive name of the API.
title: ACME - Basic template API
Вышеупомянутый файл выглядит как текстовое представление JSON, поэтому, возможно, этого должно быть достаточно, чтобы добавить настраиваемое поле x-acme-production-ready в JSON, но как я могу добавить его программно?
********* ОБНОВЛЕНИЕ ***********
Глядя на спецификацию выше, это настраиваемое поле следует добавить на том же уровне тега «информация» в JSON развязность:
openapi: "3.0.1",
x-acme-production-ready: "true",
info: {
title: "my-app-title",
version: "v1.0"
},
servers: [
{
url: "https://localhost:44370"
}
],
paths: {...}
Я добавил в свой проект класс CustomModelDocumentFilter, но не могу понять, как и где его вызвать и как с его помощью добавить это поле в эту позицию.
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System.Collections.Generic;
namespace MyApp.Swagger
{
public class CustomModelDocumentFilter : IDocumentFilter
{
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
swaggerDoc....
}
}
}
В моем стартапе:
services.AddSwaggerGen(c =>
{
c.DocumentFilter();
c.SwaggerDoc("v1.0", new OpenApiInfo { Title = "my app title", Version = "v1.0", Description = "my app description." });
string xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
string xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
});
Подробнее здесь: https://stackoverflow.com/questions/694 ... t-core-web
Добавьте пользовательский атрибут в файл спецификации OpenAPI и разверните его в .net core web api. ⇐ C#
Место общения программистов C#
1771992105
Anonymous
У меня есть проект веб-API .Net Core 5 (C#), в котором я добавил и настроил Swagger.Net. Все работает нормально, но теперь клиент попросил меня добавить «пользовательский атрибут» в файл OAS, чтобы указать, что API еще не готовы к производству:
x-acme-production-ready=false
На сегодняшний день я всегда предоставляю файл JSON, автоматически создаваемый Swagger.
Как я могу создать файл OAS с такой структурой:
openapi: "3.0.0"
# REQUIRED - Formal commitments from the API focal point
x-acme-api-commitments:
api-100: We commit to providing a proper valid OpenAPI (swagger) specification file for each API change.....
# REQUIRED - List of versions changes
x-acme-api-changelog:
- version: 1.0.0
changes: Add GET /example
- version: 1.1.0
changes: Add POST /example
info:
# REQUIRED - Functional descriptive name of the API.
title: ACME - Basic template API
Вышеупомянутый файл выглядит как текстовое представление JSON, поэтому, возможно, этого должно быть достаточно, чтобы добавить настраиваемое поле x-acme-production-ready в JSON, но как я могу добавить его программно?
********* ОБНОВЛЕНИЕ ***********
Глядя на спецификацию выше, это настраиваемое поле следует добавить на том же уровне тега «информация» в JSON развязность:
openapi: "3.0.1",
x-acme-production-ready: "true",
info: {
title: "my-app-title",
version: "v1.0"
},
servers: [
{
url: "https://localhost:44370"
}
],
paths: {...}
Я добавил в свой проект класс CustomModelDocumentFilter, но не могу понять, как и где его вызвать и как с его помощью добавить это поле в эту позицию.
using Microsoft.OpenApi.Models;
using Swashbuckle.AspNetCore.SwaggerGen;
using System.Collections.Generic;
namespace MyApp.Swagger
{
public class CustomModelDocumentFilter : IDocumentFilter
{
public void Apply(OpenApiDocument swaggerDoc, DocumentFilterContext context)
{
swaggerDoc....
}
}
}
В моем стартапе:
services.AddSwaggerGen(c =>
{
c.DocumentFilter();
c.SwaggerDoc("v1.0", new OpenApiInfo { Title = "my app title", Version = "v1.0", Description = "my app description." });
string xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
string xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
});
Подробнее здесь: [url]https://stackoverflow.com/questions/69479191/add-custom-attribute-to-openapi-specification-file-and-swagger-in-net-core-web[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия