728x90
반응형
이전 포스팅에서 GraphQL로 간단한 정보를 가져왔다
이제는 영화 오픈 API를 통해 정보를 가져와보자
우선 index.js에 GraphQL를 활용해서 서버를 구축하고 맵핑을 시작하자
이것은 이전포스팅과 동일하지만 다시한번 작성해보자
index.js
import { GraphQLServer } from "graphql-yoga";
import resolvers from "./graphql/resolvers"
const server = new GraphQLServer({
typeDefs: "graphql/schema.graphql", // 스키마정의가 되어있는 곳을 Defs로 둔다
resolvers // 결과 값을 실행할곳을 성정한다 단지 이 4줄로 끝이다
});
server.start(() => console.log("Graphql server Running"));
그리고 가져올 영화 정보가 어떤 타입인지 지정해주어야한다
영화정보를 가져올때 어떠한 형식인지 지정해주어야 하는것이다
schema.graphql
type Movie {
id: Int!
title: String!
rating: Float!
summary: String!
language: String!
medium_cover_image: String!
}
type Query {
movies(limit: Int, rating: Float): [Movie]!
}
그리고 db.js를 만드는데 여기서는 오픈 API를 연결한다
db.js에는 url주소가 필요하며 그리고 url에 쿼리스트링이 있다면 그 쿼리스트링을 동적으로 변수처리해서
조건을 변경할 수 있다
db.js
import fetch from "node-fetch";
const API_URL = "https://yts.am/api/v2/list_movies.json?";
// Node.js에서 fetch를 할때 필요하다 node-fetch를 설치하자
export const getMovies = (limit, rating) => {
let REQUEST_URL = API_URL;
if (limit > 0) {
REQUEST_URL += `limit=${limit}`;
}
if (rating > 0) {
REQUEST_URL += `&minimum_rating=${rating}`;
}
return fetch(REQUEST_URL)
.then(res => res.json())
.then(json => json.data.movies);
}
그리고 resolvers.js를 만들어서 Query문을 작성해서 오픈API에서 가져올 정보를 핸들링할 수 있다
resolvers.js
import { getMovies } from "./db";
const resolvers ={
Query: {
movies: (_, { rating, limit }) => getMovies(limit, rating)
}
};
export default resolvers;
이러한 결과는 아래와 같이 나오게된다
다음 포스팅은 더 많은 데이터 조작을 하고 여러가지 함수활용을 해보겠습니다!
728x90
반응형
'IT_Web > GraphQL' 카테고리의 다른 글
GraphQL API axios 활용 및 비동기 처리 (0) | 2020.06.29 |
---|---|
GraphQL API 서버 만들기 실습 (0) | 2020.06.10 |
GraphQL 활용 서버구축을 위한 환경설정하기 (0) | 2020.06.09 |