Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/saeris/scryfall-api
๐ A GraphQL API wrapper for Scryfall built with Apollo Data Sources.
https://github.com/saeris/scryfall-api
apollo-server aws aws-lambda graphql magic-the-gathering mtg scryfall
Last synced: 23 days ago
JSON representation
๐ A GraphQL API wrapper for Scryfall built with Apollo Data Sources.
- Host: GitHub
- URL: https://github.com/saeris/scryfall-api
- Owner: Saeris
- License: mit
- Created: 2018-10-22T23:01:56.000Z (about 6 years ago)
- Default Branch: master
- Last Pushed: 2023-01-05T14:29:25.000Z (almost 2 years ago)
- Last Synced: 2024-10-12T13:35:19.405Z (about 1 month ago)
- Topics: apollo-server, aws, aws-lambda, graphql, magic-the-gathering, mtg, scryfall
- Language: TypeScript
- Homepage: https://scryfall.saeris.io
- Size: 963 KB
- Stars: 7
- Watchers: 2
- Forks: 2
- Open Issues: 29
-
Metadata Files:
- Readme: README.md
- License: LICENSE.md
Awesome Lists containing this project
README
๐ Scryfall API
A GraphQL API wrapper for Scryfall built with Apollo Data Sources.
## ๐ ๏ธ Setup
Install dependencies by running `yarn`. That's it!
If you want to track usage metrics for your API, you'll need to get an API key from Apollo Graph Manager. For instructions on how to do that, please read the [Apollo Graph Manager docs](https://www.apollographql.com/docs/graph-manager/). Then create a new file in the root directory named `.env`. In it, copy + paste the following and replace the text following the `=` sign with your newly create API key.
```
ENGINE_API_KEY=
```Once that's done, you can now start up a development server using `yarn start`. By default this will use Serverless Offline, but if you would instead like to use Netlify Lamba, you can run `yarn start:netlify` instead. Once the development server is listening, you can pull up a GraphQL Playground by visiting one of the following URLs:
Lambda: http://localhost:1337/dev
Netlify: http://localhost:1337/.netlify/functions/scryfall-api## ๐น๏ธ Demo
You can try out the API using the GraphQL Playground hosted at https://scryfall.saeris.io/.netlify/functions/scryfall-api
## ๐งช Testing
Testing is provided via `jest` and is pre-configured to run with `codecov` as well. While tests for this project are far from complete, they can be found under `src/__TEST__` and follow a naming format of `[filename].spec.ts`. Additionally, this project uses `eslint`, `typescript`, and `prettier`, all three of which are automatically run on each commit via `husky` + `lint-staged`. To manually lint and test, use the following commands:
Lint:
```bash
yarn lint
```Typecheck:
```bash
yarn typecheck
```Test and watch for changes:
```bash
yarn test:watch
```Lint + Typecheck + Test:
```bash
yarn test
```## ๐ข Deployment
To deploy the server, you'll need to follow the Serverless Framework's [Setup Guide](https://serverless.com/framework/docs/providers/aws/guide/installation/) to deploy to AWS. If you'd rather use Netlify, you'll need to follow whichever method works best for your workflow. Refer to [Netlify's Docs](https://docs.netlify.com/configure-builds/get-started/) for more information.
If you're deploying to AWS, you can use the following commands to deploy to Staging or Production:
Staging:
```bash
yarn deploy
```Production:
```bash
yarn deploy:prod
```Alternatively, if you're using Travis CI, you can deploy to both on each commit as part of your CI process by uncommenting the following lines inside `travis.yml`:
```yaml
deploy:
# deploy develop to the staging environment
- provider: script
skip_cleanup: true
script: yarn deploy:dev
on:
node: "12"
branch: develop
# deploy master to production
- provider: script
skip_cleanup: true
script:
- yarn deploy:prod
on:
node: "12"
branch: master
```## ๐ฅ License
Released under the [MIT license](https://github.com/Saeris/Scryfall-API/blob/master/LICENSE.md).