본문 바로가기
CMS

strapi Collection 생성과 사용

by NOMADFISH 2020. 12. 3.

Collection

  • 기본적으로 collection은 DB의 table이다.
  • 실제로 strapi가 생성하는 collection은 실제 DB에서도 table로 생성된다.

collection type 추가

  • PLUGINS/Content-Types Builder를 누른후 나타나는 오른쪽 화면에서 + Create new collection type 을 클릭한다.

collection type name

  • collection type의 이름을 설정한다. 이 이름은 table name이라고 생각할 수 있다. 다만 Display name은 현재 strapi에서 보여지는 이름이며 고급 설정에 실제로 DB table이름으로 사용될 collection name도 따로 설정은 할 수 있다.
  • Todo List를 만든다는 가정하에, task라는 이름으로 하나의 Collection을 생성한다.
  • 그다음 field를 추가해 줘야 한다.

collection type fields

  • 상단의 저장 버튼을 눌러 저장 한다.
  • 이제 Task라는 Collection Type이 생성 된다.
  • 이제 COLLECTION TYPES에 Task 항목이 생긴 것을 볼 수 있다.

  • COLLECTION TYPES에서 이제 값들을 추가/수정/삭제 할 수 있다. 
  • 이제 값을 직접 추가해 보도록 하겠다.
  • 화면 오른쪽에 "+ task 항목 추가" 라는 버튼을 누르면, 내가 추가한 field들을 추가 할 수 있는 화면으로 이동한다.
  • Name에 '홍길도', Desc에는 '활빈당 두목' 으로 데이터를 추가 한다. 저장 버튼을 눌러 실제로 collection data로 추가 한다.

  • 실제로 추가된 데이터가 리스트로 나타난다.

  • ID, Created_at은 기본적으로 생성되는 항목이니 크게 신경쓰지 않아도 된다.
  • 이제 생성된 데이터를 Rest API를 사용하여 획득하도록 해보자.
  • 일단 먼저, Task Collection 에 외부에서 로그인 없이 접근 할 수 있는 권한을 주도록 하자.
  • PLUGINS/역할 & 권한 메뉴에 Public역할을 수정하자, 오른쪽에 연필 모양을 눌러 수정할 수 있다.

  • Public을 잠깐 설명하자면, 기본적으로 생긴 역할/권한이며, 아마나 접근할수 있는 권한을 의미한다. 즉 Public에서 허가해준 사항은 strapi에 user로 추가되있지 않는 어떤 client라도 접근이 가능해 진다. 

  • Public 설정 화면에 들어 가면 위와 같이 원래 업던 Task라는 항목이 생성되어 있음을 확인 할 수 있따. 새부적인 권한을 설정 할 수 있다.
  • 이름만으로 각각이 무었을 의미 하는지 알 수 있을 것이다.
  • 여기서 find 권한만 check하여 주도록하자, findone 이라는 항목은 task의 전체 리스트는 가져 올 수 없고, ID로 하나의 항목만 딱 지목해서 확인 가능한 권한이다.
  • 이제 저장 버튼을 누르면 권한 설정이 적용된다.
  • 이제 Browser 주소창에 localhost:1337/tasks 을 입력해보자 아래와 같은 응답이 올 것이다.
  • 보통 collection name +"s"붙이면 find 항목이고, find는 조건에 맞는 여러개의 collection데이터를 가져오는 API이다.
[
   {
      "id":1,
      "name":"홍길동",
      "desc":"활빈당 두목",
      "created_by":{
         "id":1,
         "firstname":"jisu",
         "lastname":"eo",
         "username":null
      },
      "updated_by":{
         "id":1,
         "firstname":"jisu",
         "lastname":"eo",
         "username":null
      },
      "created_at":"2020-12-02T15:04:49.452Z",
      "updated_at":"2020-12-02T15:04:49.483Z"
   }
]
  • 위에서 볼 수 있는 것과 같이 정상적으로 데이터가 서버로 부터 내려오는 것을 확인 할 수 있다.
    • created_by, updated_by, created_at, updated_at 등은 strapi의 어떤 collection type을 api로 불러 와도 존재하는 항목들이다.( 나중에 이것들을 어떻게 빼거나 조작할 수 있는지 code level에서 설명하겟다)

'CMS' 카테고리의 다른 글

strapi API Customizing  (0) 2020.12.15
strapi relation type 생성과 사용  (1) 2020.12.04
strapi collection type 상세  (2) 2020.10.17
strapi collection type추가  (0) 2020.10.12
str api, DB와 RestAPIs  (0) 2020.10.04