strapi는 headless cms다. 즉, 철저하게 콘텐츠 저장소로 설계 및 구축된 백엔드 전용 콘텐츠 관리 시스템.
쉽게 말하자면 아주 쉽게 사용할 수 있는 백엔드다.
npx create-strapi-app@latest my-project
로 설치하자. 꽤 걸린다.
설치후 어드민 페이지로 접속해준다. 보통 http://localhost:1337/admin 로 되어있음.
접속하면 이런페이지가 나온다.
Create new entry로 딸깍딸깍해서 새로운 유저를 만들었다.
그리고 접속할 수 있게 만들어줄 토큰을 발급받는다.
토큰은 딱 한번만 보여지니 유의하자.
참고로 여기서 사용하는 토큰의 타입은 Bearer Token이다.
토큰을 POST MAN에 넣어주고 유저 데이터를 가져와보자.
http://localhost:1337/api/users 로 접속하면 유저들의 목록을 바로 GET할 수 있다. s
를 붙여야하나보다.
컬렉션 생성 버튼이 없어 잠깐 헤맸는데, 메시지를 보니 product로 실행하여 생성이 불가능했음. npm run develop
으로 실행 하여 해결...
생성버튼을 누르면 요래 나온다. 여기서 API ID(Plural)이 실제로 접속하는 주소라서 복수형으로 나온다. 아까 위에서 복수형인 users
로 접속했던게 그 이유때문이다.
그 다음 컬렉션의 필드를 설정할 수 있다.
간단하게 text와 relation만 해보자. 텍스트는 후딱 넘어가고
Relation에 들어가면 이렇게 필드끼리의 관계를 설정할 수 있다.
user
와 post
는 one to many 관계다. 아래처럼 선택하면 one to many 관계가 된다.
문서를 생성해보자.
생성하면 draft상태가 된다.
들어가서 publish상태로 바꿔주면 실제로 접속 가능하게된다.
관계형 데이터는 populate
쿼리스트링을 사용하져 가져올 수 있다.
/api/auth/local 로 접속하면 로그인하는 API에 접근할 수 있다.
이렇게 JWT토큰을 발급해준다. 발급받은 토큰으로 유저 자신의 정보를 얻어올수도 있다.
/api/auth/local/register로 데이터를 보내면 가입도 가능함.
Setting => roles에 들어가서 유저들의 API 접근 권한을 설정해줄 수도 있다.