[초보자] 하스라를 사용해 보았습니다

4891 단어 GraphQL
어쩐지 DB와의 교환은 REST를 사용하는 것이 최신일까 생각했는데, GraphQL이라는 것이 모던 것 같다.
REST는 세세하게 누구나 직관적으로 알 수 있도록 엔드포인트를 나누게 하는 사고방식이지만, 여러가지 테이블의 데이터를 사용하고 싶을 때에 의외로 불편. 가져온 데이터를 바탕으로 한 번 더 GET하고,,,
한편, GprahQL을 사용하면 엔드포인트를 하나로 하는 대신에, 쿼리를 json과 같이 취급할 수 있으면서 여러가지 테이블의 데이터를 한번에 취득할 수 있다.

이번에는 그런 graphQL과 SQL을 자동으로 변환 해주는 Hasura라는 API 서버를 사용해 보았습니다.

공식 문서



htps // //조차. 이 / cs / 1.0 / g 등 phql / 이것 / 왜 x. HTML

설정



처음부터 시작하는 방법은 다음 두 가지입니다.
  • Harura Cloud
  • Docker

  • 이번에는 Docker를 사용한 예를 보여줍니다.

    1. 새 디렉토리에서 다음 명령 중 하나를 실행하여 docker-compose 파일을 얻습니다.


    wget https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml
    
    # or
    curl https://raw.githubusercontent.com/hasura/graphql-engine/stable/install-manifests/docker-compose/docker-compose.yaml -o docker-compose.yml
    

    docker-compose의 내용은 이렇게 되어 있습니다.

    docker-compose.yml
    version: '3.6'
    services:
      postgres:
        image: postgres:12
        restart: always
        volumes:
        - db_data:/var/lib/postgresql/data
        environment:
          POSTGRES_PASSWORD: postgrespassword
      graphql-engine:
        image: hasura/graphql-engine:v1.3.1
        ports:
        - "8080:8080"
        depends_on:
        - "postgres"
        restart: always
        environment:
          HASURA_GRAPHQL_DATABASE_URL: postgres://postgres:postgrespassword@postgres:5432/postgres
          ## enable the console served by server
          HASURA_GRAPHQL_ENABLE_CONSOLE: "true" # set to "false" to disable console
          ## enable debugging mode. It is recommended to disable this in production
          HASURA_GRAPHQL_DEV_MODE: "true"
          HASURA_GRAPHQL_ENABLED_LOG_TYPES: startup, http-log, webhook-log, websocket-log, query-log
          ## uncomment next line to set an admin secret
          # HASURA_GRAPHQL_ADMIN_SECRET: myadminsecretkey
    volumes:
      db_data:
    

    2. 시작



    특히 변경할 필요가 없으면 그대로 기동시킵니다.
    docker-compose up -d
    

    3. Hasura 콘솔 확인



    잘 시작하면 http://localhost:8080/console 에서 다음과 같은 화면이 표시됩니다.



    데이터를 등록하고 쿼리를 던져



    1. 테이블 만들기



    조속히 테이블을 만들어갑니다.
    이번에는 graphQL의 굉장함을 실감하기 위해서, 메인 테이블과 그 테이블의 아이 테이블을 작성합니다. (REST이라면 메인 테이블에서 가져온 데이터를 바탕으로 새롭게 GET 할 필요가 있지만, graphQL은 한 번에 취할 수 있는 곳이 대단하다)
  • 상단의 DATA 탭을 클릭하십시오

  • Create Table 버튼을 클릭하십시오
  • 열을 입력합시다
  • 자식 테이블도 마찬가지

  • 2. 테이블 간 관계 설정



  • 데이터 탭을 클릭하십시오
  • 자식 테이블 선택

  • 수정 탭을 클릭하십시오

  • Foreign Keys에서 설정
  • 상위 테이블 선택

  • Relationships 탭을 클릭하십시오

  • Table Relationships의 Array relationships는 이전에 하위 테이블에 추가 된 설정을 반영해야하므로 추가 버튼을 클릭하십시오.
  • 쿼리에 사용할 매개 변수 이름을 입력

  • 3. 쿼리 던지기



    마지막으로 쿼리를 던져 데이터를 얻을 수 있는지 확인해 봅시다.
    GRAPHIQL 탭 페이지에서 실행.

    좋은 웹페이지 즐겨찾기