trpc-openapi
openapi-typescript-codegen
trpc-openapi | openapi-typescript-codegen | |
---|---|---|
11 | 9 | |
2,006 | 2,673 | |
2.3% | - | |
3.5 | 9.6 | |
22 days ago | 5 days ago | |
TypeScript | TypeScript | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
trpc-openapi
-
Create Production-Ready SDKs for tRPC
tRPC does not natively export OpenAPI documents, but the trpc-openapi package adds this functionality. We'll start this tutorial by adding trpc-openapi to a project, and then we'll add a script to generate an OpenAPI schema and save it as a file.
-
Using OpenAPI to Detect Breaking Changes in tRPC
While trpc-openapi originally was used to expose REST endpoints of the tRPC router, we will use it to generate an OpenAPI specification for our API.
-
tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy
Sure it can, you can use https://github.com/prosepilot/trpc-openapi
-
Will you, and when will you, use trpc in your code?
You either have to go with react native or use https://github.com/jlalmes/trpc-openapi to generate rest endpoint using trpc. lol. Not sure how good the trpc-openapi package is though. Read somewhere it was missing stuff
-
Is tRPC redundant with SvelteKit?
As for exposing the API externally, neither (can) limit this but SvelteKit's API is generally considered to be an internal implementation detail that you don't use directly since it might change between versions. If you want to expose an API you should choose tRPC, probably alongside the OpenAPI plugin or something similar.
-
[AskTS] What do you think will be the future of runtime type checking?
In essence, features of the language made for static type checking at compilation are possibly being left favour of tools that act like a superset of the language that provide the static build type checking and offer runtime type checking too. An example I recently saw was the trpc-openapi package which uses Zod for creating the types of the schema for the http request and responses, it takes a zod schema as that is what it can use when compiled to JavaScript to generate the types for the openapi file at runtime, there's scarcely a type or interface in sight when using it but you have full type safety.
-
Help me get out of stack hell
Take a look at https://github.com/jlalmes/trpc-openapi which will give you a rest endpoint based on your trpc router. Ymmv in reality but basically this should give you some confidence that your trpc router can be called from another client (not just next).
-
Full-Stack TypeScript with tRPC and React
Ok thanks, I did find a good example here https://github.com/jlalmes/trpc-openapi/blob/master/examples/with-nextjs/src/server/router.ts
-
Why we ditched GraphQL for tRPC
There is an OpenAPI Extension for tRPC that can be used to create a more REST-like API from your procedures, and that in turn can be used for auto-generating documentation. But if my app needed to offer third-party API access, I would likely reach for GraphQL again.
tRPC is nice because you have type safety the whole way down. Someone has made a tRPC OpenaAPI for exposing tRPC procedures externally in the OpenAPI format https://github.com/jlalmes/trpc-openapi
openapi-typescript-codegen
-
Django 5.0 Is Released
I’d also add that if you use Typescript with an OpenAPI client generator (https://github.com/ferdikoomen/openapi-typescript-codegen) it can immensely alleviate some of the biggest pain points of seperate backend and front-end. It always used to be a major pain in the ass with the amount of overhead an API change would incur - updating documentation, postman, constant communication between backend and front-end devs, etc. Now I just npm run generate, I see new API changes in my Git client and Typescript errors for code that needs updating.
Also, using a library like Tanstack Query or Rdtk Query can almost completely eliminate manual state management, and kinda makes the whole development experience feel almost like SSR.
-
Ask HN: What would you use to build a mostly CRUD back end today?
I have been in love with Loopback.io since v2 even though it was a bit of a rollercoaster.. Loopback v4 is a beautiful library. Its been around longer than nestjs but that's the easiest thing to compare it too. I recently have been creating lb4 servers that interface nextjs and react native clients. Initially, I identify my entities and use cases that I want to build. I then use the lb4 cli to auto generate models, relations, controllers, datasources, interceptors (add logic on methods/classes). I can start testing them with the OpenAPI explorer. With the openapi-typescript-codegen library I can generate services from my lb4 OpenAPI spec that I can use on the client side. From there, you can really query data easily with the loopback filter (which can be used on the client too). I initially started doing this with angular1/2+ but its been pleasant using many clients. Even though I have been leveraging it for years in production, I am still learning and exploring. There are many other awesome things I can expand on or explain if you are interested!
https://loopback.io/doc/en/lb4/
https://github.com/ferdikoomen/openapi-typescript-codegen/tr...
-
tRPC – Move Fast and Break Nothing. End-to-end typesafe APIs made easy
In our current project with a TS frontend and Python backend, we use an OpenAPI schema as the source of truth and openapi-typescript-codegen [0] to interface with it on the client side. While not perfect, it provides a very nice interface to our API with request/response typings.
I also wrote a 10-line mock API wrapper that you can call as mockApi((request) => response), and it will type-check that your mock function implements the API correctly.
[0]: https://github.com/ferdikoomen/openapi-typescript-codegen
-
Is it possible to create a dynamic type/interface from API response
Second step is to generate typescript types from the backend's spec. You can use a library like this.
- Voi va generați modele automat pe FE?
-
A minimalist backend REST API in NodeJS
openapi-typescript-codegen Generates a Typescript client with interfaces from an OpenAPI spec.
-
Merging duplicate interfaces
I'm not familiar with all the options openapi-generator has. I tried it awhile ago and found it quite buggy, and more of a pain to run, especially if you're not already doing Java development. I ended up preferring OpenAPI Typescript Codegen, which is written in Typescript. One option it has which would solve the problem you're running into here, is that you can tell it to use union types instead of enums. So your interfaces would be generated as
-
Don't make me think, or why I switched to Rails from JavaScript SPAs
I'm currently working on two separate projects, the first is a Django project with DRF and I codegen with drf-spectacular [1] and openapi-typescript-codegen [2]. The other project also uses Django, with the API through Hasura and codegen with graphql-codegen [3]. In both of these cases I've been able to largely avoid duplicating my models clientside, or at least it isn't manual.
1: https://github.com/ferdikoomen/openapi-typescript-codegen
2: https://drf-spectacular.readthedocs.io/en/latest/
3: https://github.com/dotansimha/graphql-code-generator
-
Need some advice on how do do my webapp (front + backend)
For typescript client code generation, I typically use something like openapi-typescript-codegen, but there are a lot more generators (like the openapi-generator project) that are imperfect in their own ways, I'm sure you can find one that works for you.
What are some alternatives?
spot - Spot is a concise, developer-friendly way to describe your API contract.
openapi-client-axios - JavaScript client library for consuming OpenAPI-enabled APIs with axios
create-t3-app - The best way to start a full-stack, typesafe Next.js app
orval - orval is able to generate client with appropriate type-signatures (TypeScript) from any valid OpenAPI v3 or Swagger v2 specification, either in yaml or json formats. 🍺
typescript-runtime-type-benchmarks - đź“Š Benchmark Comparison of Packages with Runtime Validation and TypeScript Support
SvelteKit - web development, streamlined
trpc-fe-boilerplate-next - ⚒️ Minimal tRPC frontend Nextjs boilerplate for separate BE-FE repositories. Easily consume fully typesafe APIs.
Devise Token Auth - Token based authentication for Rails JSON APIs. Designed to work with jToker and ng-token-auth.
openapi-typescript - Generate TypeScript types from OpenAPI 3 specs
graphql-code-generator - A tool for generating code based on a GraphQL schema and GraphQL operations (query/mutation/subscription), with flexible support for custom plugins.
ttype-safe - TypeScript runtime type validator generator that creates validation functions from TypeScript types with custom validation rules defined using JSDoc comments.
openapi-generator - OpenAPI Generator allows generation of API client libraries (SDK generation), server stubs, documentation and configuration automatically given an OpenAPI Spec (v2, v3)