Generate NSwag Client from ASP.NET Core API
Budget: $30 – $250 USD
1:
Use NSwag Studio to generate API Client. Add generated client to ASP.NET Core library project.
Add generated NSwag.JSON to API project
2:
Using NSwag.MSBuild, create 'AfterBuild' step to re-generate client code.
Update of API needs to update API client project code, on build of API project.
API Project file requires something like this:
<ItemGroup>
<Content Remove="nswag.json" />
<None Include="nswag.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="NSwag" BeforeTargets="AfterBuild" Condition="'$(TF_BUILD)'!='True'">
<Exec ConsoleToMSBuild="true" ContinueOnError="true" Command="$(NSwagExe_Net50) run nswag.json">
<Output TaskParameter="ExitCode" PropertyName="NSwagExitCode" />
<Output TaskParameter="ConsoleOutput" PropertyName="NSwagOutput" />
</Exec>
<Message Text="$(NSwagOutput)" Condition="'$(NSwagExitCode)' == '0'" Importance="low" />
<Error Text="$(NSwagOutput)" Condition="'$(NSwagExitCode)' != '0'" />
</Target>
References:
https://www.youtube.com/watch?v=lF9ZZ8p2Ciw
https://github.com/RicoSuter/NSwag/wiki/NSwagStudio
https://github.com/RicoSuter/NSwag
https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.MSBuild
Use NSwag Studio to generate API Client. Add generated client to ASP.NET Core library project.
Add generated NSwag.JSON to API project
2:
Using NSwag.MSBuild, create 'AfterBuild' step to re-generate client code.
Update of API needs to update API client project code, on build of API project.
API Project file requires something like this:
<ItemGroup>
<Content Remove="nswag.json" />
<None Include="nswag.json">
<CopyToOutputDirectory>Always</CopyToOutputDirectory>
</None>
</ItemGroup>
<Target Name="NSwag" BeforeTargets="AfterBuild" Condition="'$(TF_BUILD)'!='True'">
<Exec ConsoleToMSBuild="true" ContinueOnError="true" Command="$(NSwagExe_Net50) run nswag.json">
<Output TaskParameter="ExitCode" PropertyName="NSwagExitCode" />
<Output TaskParameter="ConsoleOutput" PropertyName="NSwagOutput" />
</Exec>
<Message Text="$(NSwagOutput)" Condition="'$(NSwagExitCode)' == '0'" Importance="low" />
<Error Text="$(NSwagOutput)" Condition="'$(NSwagExitCode)' != '0'" />
</Target>
References:
https://www.youtube.com/watch?v=lF9ZZ8p2Ciw
https://github.com/RicoSuter/NSwag/wiki/NSwagStudio
https://github.com/RicoSuter/NSwag
https://apimundo.com/organizations/nuget-org/nuget-feeds/public/packages/NSwag.MSBuild
Related categories:
.NET Core Web API