Skip to content
@openapistack

openapi-stack

Full stack typesafe API-first development for REST

Full stack typesafe API-first development for REST

License npm downloads npm downloads Buy me a coffee

openapi-stack is a collection of open source libraries and tools for full stack software development using OpenAPI specification with an API Design First philosophy.

The goal is to unlock great developer experience and full stack type safety for software teams using REST; inspired by tools like GraphQL and tRPC.

Packages part of openapi-stack:

Benefits

  1. 🚀 No code generation. Write your own code the way you like it. Only generate types from OpenAPI spec if you want.
  2. 🤝 Single source of truth for your API contract. No more manually updating your OpenAPI specs to keep up with your backend code. Ensure your API docs and SDKs stay up to date by using the spec in runtime to route and validate.
  3. 🧙‍♂️ Type safety and validation. Build your product faster and with a better developer experience using strongly typed Typescript and code autocomplete both in the server and client side.
  4. ❤️ Testing & Collaboration. Leverage API mocks to make testing and development easier and iterate fast on your API design as you build your app's interface. Being blocked by the backend team is a thing of the past!

Features

  • Battle-tested in production. High test coverage.
  • Built with TypeScript, types included with full autocomplete support
  • Framework agnostic – works with your stack
  • Lightweight - small frontend bundle + optimized for serverless cold starts
  • No code generation – we only generate types
  • OpenAPI 3.x support
  • Samples included

Comparison

How does openapi-stack compare to GraphQL?

GraphQL is a query language for APIs developed by Facebook. It gives API clients full control over the data they query, making it extremely flexible and efficient for client-centric use cases.

Similar to OpenAPI specification, GraphQL APIs define a strongly typed schema for the data and mutations they support which makes them discoverable and intuitive to develop against.

OpenAPI stack achieves the same type safety and great developer experience by using the OpenAPI specification as a single source of truth for the API contract, used to generate types for both client and server side and utilising it for routing and validation during runtime.

Both GraphQL and openapi-stack encourage an API First approach where the API contract is treated as a first class citizen in software design instead of treating it as merely documentation.

While REST APIs don't generally provide the same level of control to clients as GraphQL, many times this could be seen as a benefit especially in scenarios where strict control over data access and operations is crucial.

Many organizations choose REST over GraphQL due to more established conventions, simplicity, and the ability to leverage standard HTTP features directly. Widespread knowledge around REST contribute to its choice among organizations looking for a tried-and-tested approach to building APIs.

How does openapi-stack compare to tRPC?

tRPC is a Remote Procedure Call (RPC) library for Typescript to build and consume typesafe APIs.

Designed for full-stack Typescript applications, tRPC allows direct sharing of types between both the client and server, without relying on code generation.

Unlike GraphQL and REST, tRPC doesn't expose a standard machine-readable API schema to be consumed by clients, instead taking a more straightforward approach of exposing endpoints or procedures, essentially "just functions" invoked by the client to the server.

OpenAPI stack achieves type safety using a similar workflow to tRPC's procedures with OpenAPI operations, also avoiding code generation by only generating types from OpenAPI spec and using the machine readable contract in the runtime for routing and validation.

While the lightweight tRPC approach is optimal for teams just looking to build full stack applications, teams looking to build robust APIs are better served by the API design first approach of openapi-stack or GraphQL.

Star History

Star History Chart

Commercial support

For assistance with integrating openapi-stack for your company, reach out at [email protected].

Pinned Loading

  1. docs docs Public

    Full stack typesafe API-first development with OpenAPI.

    TypeScript 312 9

  2. openapi-backend openapi-backend Public

    Build, Validate, Route, Authenticate and Mock using OpenAPI

    TypeScript 626 83

  3. openapi-client-axios openapi-client-axios Public

    JavaScript client library for consuming OpenAPI-enabled APIs with axios

    TypeScript 573 68

  4. openapicmd openapicmd Public

    The CLI for all things OpenAPI and Swagger

    TypeScript 58 9

Repositories

Showing 5 of 5 repositories
  • openapi-backend Public

    Build, Validate, Route, Authenticate and Mock using OpenAPI

    openapistack/openapi-backend’s past year of commit activity
    TypeScript 626 MIT 83 49 (5 issues need help) 45 Updated Dec 6, 2024
  • docs Public

    Full stack typesafe API-first development with OpenAPI.

    openapistack/docs’s past year of commit activity
    TypeScript 312 MIT 9 1 0 Updated Oct 21, 2024
  • openapi-client-axios Public

    JavaScript client library for consuming OpenAPI-enabled APIs with axios

    openapistack/openapi-client-axios’s past year of commit activity
    TypeScript 573 MIT 68 23 (2 issues need help) 1 Updated Sep 23, 2024
  • openapicmd Public

    The CLI for all things OpenAPI and Swagger

    openapistack/openapicmd’s past year of commit activity
    TypeScript 58 MIT 9 6 1 Updated Sep 21, 2024
  • .github Public
    openapistack/.github’s past year of commit activity
    1 0 0 0 Updated Mar 8, 2024

Top languages

Loading…

Most used topics

Loading…