API Explorer/Meta data enhancements
Building upon swagger feature, (but possibly re-engineering)
Support to include:
- complex (nested) DTO's and array
- markdown documentation (for detailed description)
- role/access based display (so only authorised endpoints are displayed)
- rebranding support
- ability to install nuget package without /docs folder (so as to get annotations, but not html in a model lib)
ok cool, I just moved it over to SS.Interfaces in master:
Mike M commented
Demis, I reviewed my DTO project and noticed that my DTOs have only one remaining dependency on ServiceStack.Api.Swagger: the SwaggerType static class. This has some string constants like SwaggerType.Int, SwaggerType.String that are used for the DataType property of the ApiMember attribute. Doesn't add any functionality, just prevents typos. I think in the past the ApiMember attribute and possibly others were in ServiceStack.Api.Swagger, but as you mentioned they were moved out of there a while ago. So the current state of things is better than I thought.
Hi Mike, Can you provide more info on the dependency issue? All the Swagger Attributes are in ServiceStack.Interfaces.dll which is the only reference your DTOs should need. The Swagger Feature/Implementation itself is a ServiceStack plugin so it needs a reference to ServiceStack, but none of your DTOs should.
Mike M commented
A related thought: currently, if you set up Swagger documentation for your DTOs, a client referencing your DTO assembly needs to add a dependency on ServiceStack.Api.Swagger, which in turn has direct or indirect dependencies on several ServiceStack assemblies. It would be great to have a DTO assembly support Swagger while only requiring a dependency on ServiceStack.Common.
Great points, thx Chris!