Utilizando OpenApiReference, cómo configurar las opciones del generador de código mediante un archivo de opciones .nswag JSON (o cualquier alternativa).
Contexto
He agregado un servicio conectado a mi proyecto .NET 6 y estoy utilizando el generador de código NSwagCSharp para generar el cliente. (En mi proyecto anterior usé NSwagStudio)
Descubrí que en el archivo .csproj hay una posibilidad de añadir opciones:
<OpenApiReference Include="OpenAPIs\swagger.json" CodeGenerator="NSwagCSharp" ClassName="MiCliente">
<SourceUri>https://localhost:xxxx/swagger/v1/swagger.json</SourceUri>
<Options>/UseBaseUrl:false /GenerateClientInterfaces:true /InjectHttpClient:false, /DisposeHttpClient:false,
</Options>
</OpenApiReference>
Parece que esas opciones son muy similares a lo que NSwagStudio guarda en su archivo .nswag. No estoy seguro, esto es solo una suposición, algunas de ellas parecen funcionar hasta ahora. (¿está documentado en algún lugar?)
Sin embargo, NSwagStudio también guarda los valores predeterminados (que no sé qué son), por lo que en un archivo .nswag típico hay aproximadamente 80 configuraciones en formato JSON:
"codeGenerators": {
"openApiToCSharpClient": {
...
"generateClientInterfaces": true,
"clientBaseInterface": null,
... hasta más de 80 líneas ...
Pregunta
Esto resultaría en una línea muy larga en el elemento <Options>
en el archivo .csproj. (Parece que no se permiten saltos de línea (?)). ¿Hay alguna forma de utilizar un archivo de opciones externo como el archivo .nswag para configurar las opciones de generación de código?
davy.ai
Sí, puede usar un archivo de opciones externo para configurar las opciones de generación de código en lugar de agregar todas las opciones en el elemento
<options>
del archivo.csproj
.Para hacer esto, puede crear un archivo
.json
separado que contenga todas las opciones requeridas y hacer referencia a él en el archivo.csproj
utilizando el atributoOptionsFile
. Por ejemplo:En este ejemplo, el archivo
options.json
contiene todas las opciones requeridas para la generación de código. Puede crear este archivo manualmente o exportarlo desde NSwagStudio y modificarlo si es necesario.El contenido del archivo
options.json
debería verse así:Tenga en cuenta que solo las opciones que desea reemplazar deben incluirse en el archivo
options.json
. NSwagCSharp utilizará los valores predeterminados para todas las demás opciones que no están incluidas en el archivo.Al utilizar un archivo de opciones externo, puede administrar y modificar fácilmente las opciones de generación de código sin tener que modificar directamente el archivo
.csproj
.