Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/saeris/tmdb-api

๐ŸŽฌ A Serverless GraphQL API built on top of TheMovieDB using Apollo Server
https://github.com/saeris/tmdb-api

api apollo-server aws-lambda graphql netlify-functions serverless the-movie-db typescript

Last synced: 20 days ago
JSON representation

๐ŸŽฌ A Serverless GraphQL API built on top of TheMovieDB using Apollo Server

Awesome Lists containing this project

README

        

๐ŸŽฌ TMDB API


Build StatusCode Coverage


A GraphQL API wrapper for The Movie DB built with Apollo Data Sources.

## ๐Ÿ› ๏ธ Setup

Install dependencies by running `yarn`, then create a new file in the root directory named `.env`. You'll need to get an API key from The Movie DB in order to run any queries. For more information, please read the [Movie DB docs](https://developers.themoviedb.org/3/getting-started/introduction). Additionally, 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/). In your new `.env` file, copy + paste the following and replace the text following the `=` sign with your newly create API keys.

```
MOVIE_DB_API_V3_KEY=
# OR
MOVIE_DB_API_V4_KEY=

APOLLO_KEY=
```

Once that's done, you can now start up a development server using `yarn start`. Once the development server is listening, you can pull up a GraphQL Playground by visiting one of the following URL:

Netlify: http://localhost:1337/.netlify/functions/tmdb-api

## ๐Ÿ•น๏ธ Demo

You can try out the API using the GraphQL Playground hosted at https://tmdb-api.saeris.io/.netlify/functions/tmdb-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
```

## ๐Ÿฅ‚ License

Released under the [MIT license](https://github.com/Saeris/tmdb-api/blob/master/LICENSE.md).