Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/mstn/apollo-link-swagger
An ApolloLink for Swagger 2.0 REST endpoints (PoW)
https://github.com/mstn/apollo-link-swagger
apollo apollo-link graphql swagger
Last synced: 2 months ago
JSON representation
An ApolloLink for Swagger 2.0 REST endpoints (PoW)
- Host: GitHub
- URL: https://github.com/mstn/apollo-link-swagger
- Owner: mstn
- License: mit
- Created: 2018-02-15T07:13:19.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2018-02-16T05:41:16.000Z (almost 7 years ago)
- Last Synced: 2024-07-31T07:19:01.734Z (5 months ago)
- Topics: apollo, apollo-link, graphql, swagger
- Language: TypeScript
- Size: 43 KB
- Stars: 13
- Watchers: 4
- Forks: 0
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
- awesome - apollo-link-swagger - An ApolloLink for Swagger 2.0 REST endpoints (PoW) (TypeScript)
README
> An ApolloLink for Swagger 2.0 REST endpoints (PoW).
# Apollo Link Swagger (experimental)
[Swagger](https://swagger.io/) is a popular framework for documenting and defining REST APIs.
This package allows you to use GraphQL with any REST endpoint that has or could have a Swagger spec.
You do not need a GraphQL server: GraphQL queries are translated into REST queries on the fly directly in your browser.
This could be useful if you want to migrate your system from REST to GraphQL or if you want to use the goodies of the GraphQL ecosystem with a traditional backend.
A getting started example:
```js
import {
SwaggerLink,
SwaggerSchema
} from 'apollo-link-swagger';import { execute } from 'apollo-link';
import gql from 'graphql-tag';
// json object shaped as a Swagger schema
const schema: SwaggerSchema = { ... };// build a link
const link = new SwaggerLink({ schema });// execute GraphQL queries against Swagger endpoints
// the query is translated into an http request
// i.e. GET https://example.com/sample?id=1
execute(link, {
query: gql`
query SampleQuery {
viewer {
getSample(id: 1) {
hello
}
}
}
`
});
```## Alternative and similar projects
You can use [apollo-link-rest](https://github.com/apollographql/apollo-link-rest). The logic for mapping GraphQL queries to REST is defined by special query directives.
While apollo-link-rest might be more useful when you mix data from REST and other datasources, with apollo-link-swagger you do not have to annotate GraphQL queries.
## Help wanted!
This package is only a proof of work. We need your help to build a solid package! Get in touch.
## Credits
Under the hood we use [apollo-link-schema](https://www.npmjs.com/package/apollo-link-schema) and
[swagger-to-graphql](https://github.com/yarax/swagger-to-graphql) (where the hard work is done).