UNPKG

graphql-from-swagger

Version:

<a href="http://badge.fury.io/js/graphql-from-swagger"><img src="https://badge.fury.io/js/graphql-from-swagger.svg"></a>

71 lines (47 loc) โ€ข 2.72 kB
# graphql-from-swagger <a href="http://badge.fury.io/js/graphql-from-swagger"><img src="https://badge.fury.io/js/graphql-from-swagger.svg"></a> > ๐Ÿ‡ Swagger ํ•˜๋‚˜๋กœ GraphQL ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” CLI์ž…๋‹ˆ๋‹ค. ![demo](./example/demo.gif) ## ๊ฐœ์š” ๊ฐ„๋‹จํ•œ ์„ค์ • ํŒŒ์ผ ํ•˜๋‚˜์™€ ๋ช…๋ น์–ด ํ•˜๋‚˜๋กœ Swagger๋ฅผ ํ†ตํ•ด GraphQL ๊ด€๋ จ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑํ•ด์ฃผ๋Š” CLI์ž…๋‹ˆ๋‹ค. ### Input * Swagger ### Output * GraphQL Schema * Schema Type Definition * RESTDataSource(apollo-datasource-rest) Child Class * GraphQL Resolvers ## CLI Usage ```bash $ npx graphql-from-swagger ``` ํ˜น์€ ```bash $ npm i -g graphql-from-swagger $ graphql-from-swagger ``` ## Config ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ๋””๋ ‰ํ† ๋ฆฌ์— `graphql-from-swagger.config.json` ํŒŒ์ผ์„ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ์€ ์˜ˆ์‹œ ์„ค์ • ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ```json { "swaggerPaths": ["test/swagger.json", "https://petstore.swagger.io/v2/swagger.json"], "schemaOutputFiles": ["generated/heroes.graphql", "generated/petstore.graphql"], "typesOutputFiles": ["generated/HeroesTypes.ts", "generated/PetstoreTypes.ts"], "restDataSourceOutputFiles": ["generated/HeroesApi.ts", "generated/PetstoreApi.ts"], "resolversOutputFiles": ["generated/HeroesResolvers.ts", "generated/PetstoreResolvers.ts"] } ``` ์„ค์ •์„ ์œ„ํ•œ 5๊ฐ€์ง€ ๋ณ€์ˆ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. | field | type | description | ext | |---------------------------|----------|----------------------------------------------------------------|---------------------| | swaggerPaths | string[] | swagger.json ํ˜น์€ swagger.yaml ํŒŒ์ผ์˜ ๊ฒฝ๋กœ ํ˜น์€ url์ž…๋‹ˆ๋‹ค. | .json | .yaml | url | | schemaOutputFiles | string[] | swagger๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋  GraphQL Schema ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. | .graphql | | typesOutputFiles | string[] | GraphQL Schema๋ฅผ ํ†ตํ•ด ์ƒ์„ฑ๋  Type Definition ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. | .ts | | restDataSourceOutputFiles | string[] | RESTDataSource(apollo-datasource-rest)์˜ ์ž์‹ํด๋ž˜์Šค ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. | .ts | | resolversOutputFiles | string[] | ์ƒ์„ฑ๋  resolvers ํŒŒ์ผ์˜ ๊ฒฝ๋กœ์ž…๋‹ˆ๋‹ค. | .ts | ## Dependencies * `swagger`๋ฅผ ํ†ตํ•ด GraphQL Schema๋ฅผ ์ƒ์„ฑํ•  ๋•Œ [`swagger-to-graphql`](https://github.com/yarax/swagger-to-graphql) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. * GraphQL Schema๋ฅผ ํ†ตํ•ด Typescript Type Definition ํŒŒ์ผ์„ ์ƒ์„ฑํ•  ๋•Œ [`@graphql-codegen/typescript`](https://graphql-code-generator.com/docs/plugins/typescript) ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ## License MIT