Package Description
Install
| Product | Versions |
|---|---|
| .NET |
README
Microsoft Restier - OData Made Simple
Releases | Documentation | OData v4.01 Documentation
Swagger for Restier ASP.NET Core
This package helps you quickly implement OpenAPI's Swagger.json and Swagger UI in your Restier service in just a few lines of code.
Supported Platforms
Microsoft.Restier.AspNetCore.Swagger 1.1 currently supports the following platforms:
- ASP.NET Core 6.0, 7.0, and 8.0 via Endpoint Routing
Getting Started
Building OpenAPI into your Restier project is easy!
Step 1: Install Microsoft.Restier.AspNetCore.Swagger
- Add the package above to your API project.
- [Optional] Change the version of your Restier packages to
1.*-*so you always get the latest version.
Step 2: Convert to Endpoint Routing (Part 1)
- Add the new parameter to the end of your
services.AddRestier()call:
services.AddRestier((builder) =>
{
...
}, true); // <-- @robertmclaws: This parameter adds Endpoint Routing support.
Step 3: Register Swagger Services
- Add the line below immediately after the
services.AddRestier()call:
services.AddRestierSwagger();
- There is an overload to this method that takes an
Action<OpenApiConvertSettings>that will let you change the configuration of the generated Swagger definition.
Step 4: Convert to Endpoint Routing & Use Swagger (Part 2)
- Replace your existing
Configurecode with the following (don't forget your customizations):
public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
{
if (env.IsDevelopment())
{
app.UseDeveloperExceptionPage();
}
app.UseRestierBatching();
app.UseRouting();
app.UseAuthorization();
// @robertmclaws: This line is optional but helps with leveraging ClaimsPrincipal.Current for cross-platform business logic.
app.UseClaimsPrincipals();
app.UseEndpoints(endpoints =>
{
endpoints.Select().Expand().Filter().OrderBy().MaxTop(100).Count().SetTimeZoneInfo(TimeZoneInfo.Utc);
endpoints.MapRestier(builder =>
{
builder.MapApiRoute<YOURAPITYPEHERE>("ROUTENAME", "ROUTEPREFIX", true);
});
});
app.UseRestierSwagger(true);
}
- On the last line, the boolean specifies whether or not to use SwaggerUI. If you want to control more of the UI configuration, use
services.Configure<SwaggerUIOptions>();in yourConfigureServices()method.
Step 5: Browse Swagger Resources
- Browse to
/swagger/ROUTENAME/swagger.jsonto see the generated Swagger definition. - Browse to
/swaggerto see the Swagger UI.
Reporting Security Issues
Security issues and bugs should be reported privately, via email, to the Microsoft Security Response Center (MSRC) [email protected]. You should receive a response within 24 hours. If for some reason you do not, please follow up via email to ensure we received your original message. Further information, including the MSRC PGP key, can be found in the Security TechCenter. You can also find these instructions in this repo's SECURITY.md.
Contributors
Special thanks to everyone involved in making Restier the best API development platform for .NET. The following people have made various contributions to this package:
| External |
|---|
| Cengiz Ilerler |
| Robert McLaws |
| Micah Rairdon |
Changes from Previous Version
Adoption Assessment
A verified publisher signal is available. Assess fit from the package's supported frameworks, license and dependency graph rather than popularity alone.
Related Guides & Workflows
Learn how to evaluate, integrate, or audit this package in your .NET project.