노마드코더 5

Tweet API 클론코딩5

추가적인 Resolver 설명을 이어가고자 한다. fullName이라는 field를 만들어보자. type User { id: ID firstName: String! lastName: String! fullName: String! } 이렇게 fullName을 요청해도 아직은 에러가 뜰 것이다. 왜냐하면 우리의 데이터베이스 안에는 fullName field가 존재하지 않기 때문이다. let users = [ { id: "1", firstName: "erin", lastName: "kim", }, { id: "2", firstName: "berry", lastName: "yang", }, ]; (user 데이터베이스) 그렇다면 fullName의 resolver를 만들어보자. fullName은 Dynamic f..

클론코딩 2022.06.12

Tweet API 클론코딩 4

Query Resolvers Resolvers은 하나의 객체가 된다. Resolvers은 타입 정의와 같은 형태를 가져야 한다. tweet(root, arguments) { console.log(arguments); return null; 보다시피 argument들이 있다. 이 argument들은 따라야 하는 순서가 있다. 항상 root는 resolver function의첫 번째 argument이다. arguments들은 항상 resolver function의 두 번째 argument가 된다. 이는 사용자가 query나 mutation에서 보낸 argument이다. 이 규칙은 GraphQL의 specification(명세)이다. (변함없음) Mutation Resolvers deleteTweet(_, {..

클론코딩 2022.06.11

Tweet API 클론코딩 3

Non-Nullable field Non-Nullable이란 해석 그대로 null 값이 나올 수 없다. tweet(id: ID): Tweet 예를 들어보자. 여기서 Tweet은 nullable field이다. null이 될 수 있는 fileld로 graphql은 '아~ 이 쿼리는 Tweet(type)이나 null값을 주는군' 라고 생각한다. 디폴트로 모든 값은 null이 될 수 있기 때문이다. tweet(id: ID): Tweet|null 그래서 이렇게 코드를 작성해도 위의 코드와 똑같이 작동한다. tweet(id: ID!): Tweet id를 필수로 만들고 싶다면 ID 뒤에 !를 붙이면 된다. tweet 쿼리를 쓰고 싶다면 ID를 무조건 보내야 한다는 뜻이다. tweet(id: ID!): Tweet! ..

클론코딩 2022.06.10

Tweet API 클론코딩 2

API에 대한 개념에 이어 실제로 API를 구축해보며 API 서버의 구조를 알아가고자 한다. GraphQL API는 많은 type들의 집합이다. (REST는 URL) GraphQL 서버에게 서버에 있는 데이터의 타입을 설명해주어야 한다. 즉, return 하려는 '데이터, 사용자가 보낼 수 있는 데이터' 등은 서버가 실행하기 전에 graphql한테 설명해줘야 하는 것들이다. 사용자가 request 할 수 있는 모든 것들은 type Query 안에 있어야 한다. text와 hello를 Run 하면 null이 출력되는 것을 확인할 수 있다. 첫 번째로 해야할 것은 우리가 API가 생긴 모양(구조)을 graphql에게 설명해줘야 한다. 그러고 나서, 사용자가 원하는 데이터를 보여줄 수 있도록(가공) 코드를 작..

클론코딩 2022.06.09

Tweet API 클론코딩 1

개발공부를 시작하기로 마음 먹은 후 몇 개의 클론코딩 중 API 구축 클론코딩에 대한 글을 적어보려 한다. 개발에 대해 무지했었던 나에게 서버 구축은 정말 신선했다. 따라하기 바빴던 강의였지만, 백엔드 개발자에 대한 꿈을 키우게 해준 강의였다. 아직도 이해되지 않는 부분이 많지만 포스팅을 하면서 정리 + 리마인드가 필요하다! API란 무엇일까? API란 Application Programming Interface의 약자이다. 여기서 'Interface'는 무엇과 상호작용을 하는 것으로 , 내가 TV와 상호작용을 하기 위해 ‘리모콘'을 사용하는 것이 interface이다. 요즘 리모콘에 ‘넷플릭스'로 바로 이동시켜주는 버튼이 있다. 넷플릭스 버튼은 TV를 만든 사람이 노출시킨 커맨드이다. 오래된 TV에 넷..

클론코딩 2022.06.08