카테고리 없음 2020. 2. 25. 23:22

이제 prisma를 실제 api에서 사용 해보자

 

만약 git repository를 public으로 설정했다면 prisma.yml파일은 커밋하면 안된다. 

prisma.yml에 prisma url이 있기 때문이다. .gitignore에 추가해주자. 

 

generate/prisma-schema 폴더에 

index.js , prisma-schema.js 파일이 있다.(우리가 이전에 prisma에 작성한 모델과 그에 따른 schema들)

 

이 파일들을 통해 prisma와 정보를 주고받게 된다.

서비스를 배포(deploy)할 때마다 prisma cloud에서 무언가를 생성하는데, 그것을 서버프로젝트에서 다운받아야한다.

prisma 서버와 정보를 주고받으려면 prisma client를 설치해야 한다.

 

먼저, 

package.js에 관련 명령어를 추가하자

scripts에 

"generate": "prisma generate",

"prisma": "yarn run deploy && yarn run generate"

 

이 후 터미널에 yarn prisma를 실행시키면 deploy가 실행되고 변경사항들이 업로드 될것이다. 그다음 client가 generate 된다

prisma와 상호작용할 client는 javascript다 prisma client가 추가되었다.

 

yarn add prisma-client-lib

 

이전에 작성했던 /src/api/Hello/sayHello/sayHello.js 를 아래와 같이 변경해보자.

yarn dev

 

서버 graphql play ground에서 sayHello Query를 실행해보자.

동시에 모든 사용자에 대한 정보를 console log에서 확인할 수있다.

이런식으로 서버는 prisma와 정보를 주고받게 된다.

prisma가 자동으로 client를 만들어준다(?) 이 client는 사용자 정보를 체크할 수 있다.(??????)

 

frontend에서 서버에 정보를 요청하면 서버는 prisma에 정보를 요청하는것이다.

이렇게 하는 것이 사람들이 서버에 직접 요청하도록 하는 것보다 안전하다.

 

posted by LotzBurger
:
카테고리 없음 2020. 2. 25. 19:06

prisma가 생성해준 resolver를토대로 

사용자를 추가해보자

 

잘된다!

관리자 페이지에도 사용자가 생성되었다.

 

정리하자면

prisma를 이용해 graphql파일만 작성하면 

resolver, sever, 관리 페이지도 만들어준다.

 

 

username kimjeongho가 username belovedsahra를 팔로우 하게 해보자.(mutation 작성)

 

이후 관리페이지를 보면 belovedsahra의 팔로워에 kimjeongho가 자동으로 추가된것을 볼 수 있다.

 

이는 데이터 모델 작성 시 User의 following과 follower를 relation으로 묶었기 때문에 prisma에서 자동으로 갱신을 해준것이다.

즉 A가 B를 following한다면 자동으로 B의 follower에 A가 등록되는 것이다.

양팡향 relationdl 잘 작동되는것을 확인하였다.

posted by LotzBurger
:
카테고리 없음 2020. 2. 25. 18:16

본론에 들어가기 앞서 package.js파일 scripts에 아래 항목을 추가하자

 "deploy": "prisma deploy"

 

아래와 같이 datamodel.prisma를 작성하자.

 

prisma docs에서 datamodel 관련 부분을 살펴보자

https://www.prisma.io/docs/datamodel-and-migrations/datamodel-MYSQL-knul/

 

Datamodel (MySQL) with MySQL - Prisma Docs

Overview The datamodel of your service configuration has two major roles: Define the underlying database schema (the models and fields are mapped to database tables). It is...

www.prisma.io

prisma 언어에는 몇몇 기능이 있는데, 

@unique

@default

self-relation도 가능하다.

self-relation은 양방향으로도 관계를 설정할 수 있다.

 

 

이제 yarn deploy를 해보자.

해당 에러가 발생하는데

UserQuery의 name을 username으로 변경후 SAVE Query를 눌러준 후 새로고침하자.

 

 

정상적으로 반영된 것을 확인할 수 있다.

 

관리페이지 우측 하단에 endpoint 주소가 있다( 타인 발설 절대금지 )

들어가 보면 아래와 같이 우리가 작성한 데이터 모델에 대한 graphql 서버 및 모든 쿼리에 대한 resolver들을 자동으로 만들어준다.

 

이것이 prisma의 좋은점이다.

posted by LotzBurger
: