Thanks for kickstarting this I thinks it's important to have a Swift building bloc for working with OpenAPI.
I use an OpenAPI code generator(Swaggen) at work regularly.
Splitting it in multiple part is the way to go.
What other part of it do you think should be part of a SSWG project ?
- parser: what you are building
- semantic: what you get is valid and proper OpenAPI
- code generator: Template(with parser data) -> Swift
- documentation generator: Template(with parser data) -> website
- default template: Client, Server
How do you plan to test you parser(maybe these files could help) ?
- https://developer.atlassian.com/cloud/jira/platform/swagger.v3.json
- GitHub - APIs-guru/openapi-directory: 🌐 Wikipedia for Web APIs. Directory of REST API definitions in OpenAPI 2.0/3.x format
- GitHub - APIs-guru/unofficial_openapi_specs: Unofficial OpenAPI/Swagger specs for popular APIs
- GitHub - Mermade/openapi-definitions: OpenAPI Definitions
Did you investigate existing tooling?
- GitHub - Kitura/Kitura-OpenAPI: OpenAPI support for Kitura
- GitHub - yonaskolb/SwagGen: OpenAPI/Swagger 3.0 Parser and Swift code generator
- GitHub - OpenAPITools/openapi-generator: OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)
- GitHub - thecheatah/vapor-server-codegen: Generates a Vapor server interface given a OpenAPI or Swagger spec. Can be used to quickly start a new API project.
- GitHub - swagger-api/swagger-codegen: swagger-codegen contains a template-driven engine to generate documentation, API clients and server stubs in different languages by parsing your OpenAPI / Swagger definition.