Skip to content

About openapi-typescript-vue

openapi-typescript-vue provides Vue.js ecosystem packages that work seamlessly with the openapi-typescript project. This project distributes Vue-specific packages that are not available in the original openapi-typescript distribution.

Vue.js specific packages

This project provides Vue.js-specific packages that complement the openapi-typescript ecosystem:

  • openapi-vue-query: Type-safe @tanstack/vue-query integration for reactive API calls
  • Vue 3 composables: Built-in Vue composables for common API patterns
  • Reactive query management: Full reactivity support for queries, mutations, and infinite queries
  • Vue-optimized examples: Complete Vue.js examples and documentation

Using openapi-vue-query in your project?

We'd love to hear from you! If you're using openapi-vue-query or other packages from this project in your Vue.js application, please let us know by opening an issue or submitting a PR to add your project to this list.

Companies and projects using openapi-vue-query

Be the first to showcase your project here!

Share your usage

Help us showcase the Vue.js ecosystem by sharing how you're using openapi-vue-query:

  • Open Source Projects: Submit a PR with your project details
  • Companies: Let us know how openapi-vue-query helps your Vue.js applications
  • Community: Share your experience and examples

The broader openapi-typescript ecosystem is used by many notable projects:

And many more...

Project goals

openapi-vue-query (Vue.js specific)

  1. Types should be strict and inferred automatically from OpenAPI schemas with the absolute minimum number of generics needed.
  2. Respect the original @tanstack/vue-query APIs while reducing boilerplate.
  3. Provide full reactivity support for Vue 3 composition API.
  4. Be as light and performant as possible.

openapi-typescript (inherited from original)

  1. Support converting any valid OpenAPI schema to TypeScript types, no matter how complicated.
  2. Generated types should be statically-analyzable and runtime-free (with minor exceptions like enums.
  3. Generated types should match your original schema as closely as possible, preserving original capitalization, etc.
  4. Typegen only needs Node.js to run (no Java, Python, etc.) and works in any environment.
  5. Support fetching OpenAPI schemas from files as well as local and remote servers.

openapi-fetch (inherited from original)

  1. Types should be strict and inferred automatically from OpenAPI schemas with the absolute minimum number of generics needed.
  2. Respect the native Fetch API while reducing boilerplate (such as await res.json()).
  3. Be as light and performant as possible.

openapi-react-query (inherited from original)

  1. Types should be strict and inferred automatically from OpenAPI schemas with the absolute minimum number of generics needed.
  2. Respect the original @tanstack/react-query APIs while reducing boilerplate.
  3. Be as light and performant as possible.

swr-openapi (inherited from original)

  1. Types should be strict and inferred automatically from OpenAPI schemas with the absolute minimum number of generics needed.
  2. Respect the original swr APIs while reducing boilerplate.
  3. Be as light and performant as possible.

Acknowledgments

This project is made possible by the incredible work of the openapi-typescript maintainers and contributors.

openapi-typescript Project Maintainers

The openapi-typescript project is maintained by these amazing individuals:

Drew Powers

Drew Powers

Lead, Creator openapi-typescript/openapi-fetch

Martin Paucot

Martin Paucot

Core Contributor, Creator openapi-react-query

Tobias Schlatter

Tobias Schlatter

Core Contributor

Hunter Tunnicliff

Hunter Tunnicliff

Core Contributor, Creator swr-openapi

Duncan Beevers

Duncan Beevers

Core Contributor

openapi-typescript Contributors

Thanks to 100+ amazing contributors to the openapi-typescript project, whose work makes this Vue.js ecosystem possible:

  • Przemek Smyrdek
  • Dan Enman
  • Atle Frenvik Sveen
  • Tim de Wolf
  • Tom Barton
  • Sven Nicolai Viig
  • Sorin Davidoi
  • Nathan Schneirov
  • Lucien Bénié
  • Boris
  • Anton Kastritskii
  • Tim Shelburne
  • Michał Miszczyszyn
  • Sam K Hall
  • Matt Jeanes
  • Kristofer Giltvedt Selbekk
  • Elliana May
  • Henrik Hall
  • Gregor Martynus
  • Sam Mesterton-Gibbons
  • Rendall
  • Robert Massaioli
  • Jan Kuča
  • Thomas Valadez
  • Asitha de Silva
  • Misha
  • Alex Batalov
  • Federico Bevione
  • Daisuke Yamamoto
  • Ash Smith
  • Micah Halter
  • chrg1001
  • Dakshraj Sharma
  • Shaosu Liu
  • Vytenis
  • Eric Zorn
  • Max Belsky
  • Peter Bech
  • Rusty Conover
  • Dave Carlson
  • Artem Shuvaev
  • Dominik Dosoudil
  • kgtkr
  • philip trauner
  • Pavel Yermolin
  • Timofei Kukushkin
  • Dmitry Semigradsky
  • Jeremy Liberman
  • Axel Hernández Ferrera
  • Loïc Fürhoff
  • Bartosz Szczeciński
  • Marco Salomone
  • Yacine Hmito
  • Sajad Torkamani
  • Marius van den Beek
  • Steven Grimm
  • Erik Hughes
  • Matthieu Monsch
  • Mitchell Merry
  • François Risoud
  • liangsky
  • Don Denton
  • Yad Smood
  • barak
  • Lukáš Horák
  • Andrea Carraro
  • psychedelicious
  • Tanguy Krotoff
  • Pim Veldhuisen
  • Aleksandr Vishniakov
  • Ahsan Fazal
  • Eugene Dzhumak
  • Mohammed Gadi
  • Adam K
  • Christoph Fricke
  • Jorrin
  • Nick Williams
  • hrsh7th
  • Hongkun
  • Matthias Zronek
  • Łukasz Wiśniewski
  • Jean-Rémi Delteil
  • Tzvi Melamed
  • ehrenschwan
  • Niccolo Zapponi
  • Marvin Luchs
  • Neil MacMunn
  • Nadeem Bitar
  • Emory Petermann
  • yoshi2no
  • Tyler Fletcher
  • Nicklos Holik
  • Nikita Gusakov
  • Stéphane Codazzi
  • Michał Fedyna
  • Matthew Lieder
  • Nick Caballero
  • Tang Ziya
  • Yuku Kotani
  • Hadrian de Oliveira
  • zaru
  • Percy Ma
  • Marco Muser
  • Evgenii Perminov
  • alex
  • Lev Chelyadinov
  • Free 公園
  • jimmy
  • hungify
  • Jared Lunde
  • Armand Abric
  • Trevor Fitzgerald
  • Jonathan Morales Vélez
  • Mike Darwish
  • Mehdi
  • Valentin Agachi
  • moyaojun
  • Dan Michael O. Heggø
  • Fred Silberberg
  • Viljami
  • Felix Kaechele
  • Sebastien Guillemot
  • Morley Tatro
  • Nick Graef
  • Valerij Medviď
  • Bruno Carneiro
  • Mike Stop Continues
  • maurice
  • Ville Penttinen
  • Jiří Staniševský
  • Brad Harker
  • Konstantin Barabanov
  • Hong Seungwoo
  • yicrotkd
  • Makoto Tateno
  • Tomohiro Ishii
  • Blake
  • Elay Gelbart
  • Djordy Koert
  • Jo M
  • Oskar Thornblad
  • Sultan Iman
  • Patryk Tomczyk
  • Marco Ellwanger
  • mochi33i
  • Laurenz Glück
  • Guillaume Duliscouët
  • Ali Kehel
  • Chai Landau
  • Benno
  • Hagen
  • Jungwoo LEE
  • Gianmarco Rengucci
  • Lucas Eduardo
  • Viktor Pöntinen
  • Kevin Wang

Project Maintainer

This Vue.js ecosystem project is maintained by: