# Bootstrap The idea is to use openapi code generator for rust to generate openapi specification library. To do so, I started with an openapi specification with ```json { "openapi": "3.1.0", "info": { "version": "3.1.0", "title": "openapi" }, "components": { "schemas": {} } } ``` ## Build OpenAPI In OpenAPI 1. Download json-schema of [OpenAPI v3.1](https://github.com/OAI/OpenAPI-Specification/blob/main/schemas/v3.1/schema.json) 2. Copy everything from `schema.$def` into the above OpenAPI json inside `components.schemas` 3. Insert `openapi` definition into `components.schemas` 4. Replace every `#/$defs/` with `#/componenst/schemas` 5. Remove every `"$ref": "#/$defs/specification-extensions"`. We don't need them now. 6. Remove every `oneOf`. We will add them later in the generated code. See the result file [here](./openapi-in-openapi.json). ## Generate Code ```bash npx -y @openapitools/openapi-generator-cli generate -i openapi-in-openapi.json -g rust -o /tmp/openapi && mv /tmp/openapi/src/models . ``` ## Implement The Remaining Part Generated code is not complete, and don't generate these structs. We will create them by hand :-) . ``` path-item-or-reference parameter-or-reference request-body-or-reference response-or-reference callbacks-or-reference example-or-reference link-or-reference header-or-reference security-scheme-or-reference ```