Open Api Specification
Our developers love a good openAPI Spec to work with, and we hope you do as well.
We have made it easy for you and created an NuGet package called Ucommerce.Headless.Documentation
, this contains an OWIN extension, to set up API documentation:
public void Configure(Owin.IAppBuilder appBuilder) { Ucommerce.Headless.Documentation.ApplicationBuilderExtensions.UseUcommerceDocumentation(appBuilder); }
See https://{yourdomain}/swagger, you will see the api-ref and you will be able to download a json file with the documentation.
Configure Umbraco - The complete guide
Per default Umbraco already uses owin, you just have to do some smaller changes to your project. This is a small guide with a few steps how to do so:
Step 1 - Creating a startup.cs
To be able to run owin middlewares you will need to overwrite the default Umbraco startup file. First thing to do is to create a new file, in this example called Startup.cs.
using System.Web.Http; using Microsoft.Owin; using Owin; using Ucommerce.Headless.Documentation; using UcommerceCodeSamples.Headless; using Umbraco.Web; [assembly: OwinStartup("Startup", typeof(Startup))] namespace UcommerceCodeSamples.Headless { public class Startup : UmbracoDefaultOwinStartup { protected override void ConfigureMiddleware(IAppBuilder app) { base.ConfigureMiddleware(app); var config = new HttpConfiguration(); app.UseUcommerceDocumentation(); app.UseWebApi(config); config.MapHttpAttributeRoutes(); config.EnsureInitialized(); } } }
Step 2 - Adding it to web.config
To let owin pick-up your startup file you will need to specify that in web.config. In the class we just created on line 7 take the OwinStartup
, FriendlyName
. In our case it is Startup
and paste it into web.config
<appSettings> <add key="owin:appStartup" value="Startup" /> </appSettings>
Step 3 - Let's see it in action
Your setup should now be complete and you should be able to hit http(s)://{yourdomain}/swagger.
Generating a client
OpenAPI Spec is a powerful tool, with that in your hands you can auto-generate the entire data layer of your application. We recommend that you take a look at NSwag. It contains generators for C#, Typescript and more.
Note: We recommend disabling OpenAPI Spec in production.