Rapiddocs is a toolkit that allows you to input your API Definition and output SDKs and API documentation. Rapiddocs is compatible with the OpenAPI specification (formerly Swagger).
The Rapiddocs toolkit is available via a command line interface (CLI) and requires Node 18+. To install it, run:
npm install -g khulnasoft
Initialize Rapiddocs with your OpenAPI spec:
rapiddocs init --openapi ./path/to/openapi.yml
# or
rapiddocs init --openapi https://link.buildwithrapiddocs.com/plantstore-openapi
Your directory should look like the following:
rapiddocs/
ββ rapiddocs.config.json
ββ generators.yml # generators you're using
ββ openapi/
ββ openapi.json # your openapi document
Finally, to invoke the generator, run:
rapiddocs generate
π Once the command completes, you'll see your SDK in /generated/sdks/typescript
.
Rapiddocs can also build and host a documentation website with an auto-generated API reference. Write additional pages in markdown and have them versioned with git. Search, SEO, dark mode, and popular components are provided out-of-the-box. Plus, you can customize the colors, font, logo, and domain name.
Check out docs built with Rapiddocs:
Get started here.
Generators are process that take your API Definition as input and output artifacts (SDKs,
Postman Collections, Server boilerplate, etc.). To add a generator run rapiddocs add <generator id>
Generator ID | Latest Version | Entrypoint |
---|---|---|
rapiddocsapi/rapiddocs-typescript-node-sdk |
cli.ts | |
rapiddocsapi/rapiddocs-python-sdk |
cli.py | |
rapiddocsapi/rapiddocs-java-sdk |
Cli.java | |
rapiddocsapi/rapiddocs-ruby-sdk |
cli.ts | |
rapiddocsapi/rapiddocs-go-sdk |
main.go | |
rapiddocsapi/rapiddocs-csharp-sdk |
cli.ts | |
rapiddocsapi/rapiddocs-php-sdk |
cli.ts |
Rapiddocs's server-side generators output boilerplate application code (models and networking logic). This is intended for spec-first or API-first developers, who write their API definition (as an OpenAPI spec or Rapiddocs definition) and want to generate backend code.
Generator ID | Latest Version | Entrypoint |
---|---|---|
rapiddocsapi/rapiddocs-typescript-express |
cli.ts | |
rapiddocsapi/rapiddocs-fastapi-server |
cli.py | |
rapiddocsapi/rapiddocs-java-spring |
Cli.java |
Rapiddocs's model generators will output schemas or types defined in your OpenAPI spec or Rapiddocs Definition.
Generator ID | Latest Version | Entrypoint |
---|---|---|
rapiddocsapi/rapiddocs-pydantic-model |
cli.py | |
rapiddocsapi/java-model |
Cli.java | |
rapiddocsapi/rapiddocs-ruby-model |
cli.ts | |
rapiddocsapi/rapiddocs-go-model |
main.go |
Rapiddocs's spec generators can output an OpenAPI spec or a Postman collection.
Note: The OpenAPI spec generator is primarily intended for Rapiddocs Definition users. This prevents lock-in so that one can always export to OpenAPI.
Generator ID | Latest Version | Entrypoint |
---|---|---|
rapiddocsapi/rapiddocs-openapi |
cli.ts | |
rapiddocsapi/rapiddocs-postman |
cli.ts |
Here's a quick look at the most popular CLI commands. View the documentation for all CLI commands.
rapiddocs init
: adds a new starter API to your repository.
rapiddocs check
: validate your API definition and Rapiddocs configuration.
rapiddocs generate
: run the generators specified in generators.yml
in the cloud.
rapiddocs generate --local
: run the generators specified in generators.yml
in docker locally.
rapiddocs add <generator>
: include a new generator in your generators.yml
. For example, rapiddocs add rapiddocs-python-sdk
.
Rapiddocs supports developers and teams that want to be API-first or Spec-first.
Define your API, and use Rapiddocs to generate models, networking code and boilerplate application code. The generated code adds type safety to your API implementation - if your backend doesn't implement the API correctly, it won't compile.
Frameworks currently supported:
While we are big fans of OpenAPI, we know it isn't the easiest format to read and write. If you're looking for an alternative, give the Rapiddocs Definition a try.
Install the Rapiddocs CLI and initialize a Rapiddocs Project.
npm install -g khulnasoft
rapiddocs init
This will create the following folder structure in your project:
rapiddocs/
ββ rapiddocs.config.json # root-level configuration
ββ generators.yml # generators you're using
ββ definition/
ββ api.yml # API-level configuration
ββ imdb.yml # endpoints, types, and errors
Here's what the imdb.yml
starter file looks like:
types:
MovieId: string
Movie:
properties:
id: MovieId
title: string
rating:
type: double
docs: The rating scale is one to five stars
CreateMovieRequest:
properties:
title: string
rating: double
service:
auth: false
base-path: /movies
endpoints:
createMovie:
docs: Add a movie to the database
method: POST
path: /create-movie
request: CreateMovieRequest
response: MovieId
getMovie:
method: GET
path: /{movieId}
path-parameters:
movieId: MovieId
response: Movie
errors:
- MovieDoesNotExistError
errors:
MovieDoesNotExistError:
status-code: 404
type: MovieId
Checkout open source projects that are using Rapiddocs Definitions:
Rapiddocs is inspired by internal tooling built to enhance the developer experience. We stand on the shoulders of giants. While teams were responsible for building the following tools, we want to give a shout out to Mark Elliot (creator of Conjure at Palantir), Michael Dowling (creator of Smithy at AWS), and Ian McCrystal (creator of Stripe Docs).
Join our Discord! We are here to answer questions and help you get the most out of Rapiddocs.
We welcome community contributions. For guidelines, refer to our CONTRIBUTING.md.