본문 바로가기

카테고리 없음

strapi framwork 를 사용한 API 서버 빠르게 개발해보기

반응형


Node.js 기반의 strapi framework 를 사용하여 빠르게 API  서버 개발을 해보도록 한다.


최근 nodejs 기반의 다양한 프레임워크들이 존재하고 있는것 같아 검색 해본 결과 인기는 없지만 맘에 드는 프레임워크를 찾은것 같아 설치 과정과 api 서버 개발 과정에 대해 작성 하려고 한다.

물론 node.js 기반의 인기있는 프레임워크는 loopback, koa, hapi 정도 되지만,,,


Github star:

koa:             19.7K

loopback:    10.2K

hapi:            9.1K

strapi:         3.2K


오픈 소스이며, 깃헙 star 가 다른 프레임워크에 비해 적은 편이지만, 개발 또한 활발히 진행 되고 있는듯 하다... 


주소: https://strapi.io/


사이트에 접속하면 strapi 에 대해 설명하고 있다.





특징: (출처: https://github.com/strapi/strapi#features)

  • Modern Admin Panel: Elegant, entirely customizable and fully extensible admin panel.
  • Secure by default: Reusable policies, CSRF, CORS, P3P, Xframe, XSS, and more.
  • Plugins Oriented: Install auth system, content management, custom plugins, and more, in seconds.
  • Blazing Fast: Built on top of Node.js, Strapi delivers amazing performances.
  • Front-end Agnostic: Use any front-end frameworks (React, Vue, Angular, etc.), mobile apps or even IoT.
  • Powerful CLI: Scaffold projects and APIs on the fly.
  • SQL & NoSQL databases: Work with Mongo as a main database, also supports Postgres, MySQL, etc.

해당 프레임워크를 선택 한 이유는 admin panel 이 빌트인 으로 제공 된다는점 , 다양한 플러그인또한 빌트인 형태로 제공된다는점, api 생성 또한 CLI 로 생성 가능 하다는점이 괜찮다고 생각함.




-- 사전 작업 되어있어야 할것:
1. NPM (nodejs 를 설치하면 기본적으로 설치됨)
2. NoSQL or SQL Database

-- strapi 프레임워크를 설치
1. 2 가지 버전으로 설치 가능
-- 안정적인 버전
$npm install strapi -g
-- alpha 버전
$npm install strapi@alpha -g

-- 프로젝트 생성
$strapi new <프로젝트 이름>
-- 프로젝트 시작
$$cd 프로젝트 이름
$strapi start
-- 초기 어드민 접속
localhost:1337/admin
-- 처음 접속시 관리자 정보 설정
username, password, email



프로젝트 생성하기전에 사전에 데이터베이스를 생성 하도록 한다. (생성하지 않을 경우 오류가남, 아직 데이터베이스 자동 생성은 못해주는듯,,,)


최근 docker 의 kitematic 을 사용하여 쉽게 이미지를 설치하고 관리 할 수 있어서 편한것 같다.

mysql 도커 이미지를 검색하여 설치하도록 함.



기존에 docker 명령어 사용하기 귀찮기도하고,잘 몰라서 사용을 안했는데.. kitematic 이 나온 이후로 잘 사용하고 있음. 대부분의 이미지를 제공 하고있는듯하다,, 

사용법은 매우 쉽다. 

검색 -> 설치 -> 설정  ㅎㅎㅎ 

port 혹은 패스워드 정도 설정해주면 끝,,,,, 물론 이것도 기본으로 설정 되어있기때문에 굳이 필요없다면 하지 않아도 된다.

port를 변경 하면 전혀 다른 Mysql  DB 로 설정이 되기때문에 ? 변경시 유의해야함... 



docker 로 설치한 mysql  데이터 서버를 Jetbrain 의 DataGrip client 로 접속을 해보았다.

위에서 언급한대로 미리 스키마를 생성 해주자 (스키마 : strapi --> 사용자 임의대로)




strapi 커맨드를 사용하여 프로젝트를 생성하자.



데이터베이스를 선택 하라고 한다. 난 mysql 을 사용할것이므로 mysql 선택후 Enter

-----> mongo db 를 추천 한다고 함 , 하지만 난 mysql 을 먼저 사용해볼것이므로,,, 

데이터베이스 이름 선택 : strapi

host

port

username: 데이터베이스 유저

password: 데이터베이스 패스워드


기본적인 기능과 플러그인들이 설치 된다.


프로젝트 를 시작 해보자

$strapi start



프로젝트를 실행 하면 기본적인 테이블에 대한 쿼리들을 생성 해준다.


해당 쿼리로 테이블을 생성해주자.




프로젝트를 다시 시작 해주도록 한다.


관리자 서버 접속 


http://localhost:1337/admin


접속 하면 관리자 정보 설정패널이 보인다. 



접속하면 아래와 같이 첫 화면이 나온다. 




왼쪽 사이드바의 Plugins 에 해당 하는 메뉴들은 Builit-in 형태로 제공 되는 플러그인을 설치한것들이며, 해당 메뉴들은 삭제 또는 재 설치 가능 한것들임.


PLUSGINS:

-- Analystics 는 유료 서비스 이다.... 

-- USERS: 사용자 관리 (추가 삭제 권한 관리)

-- Auth & Permissions: 권한 관리

-- Settings Manager : 각종 설정 관련 정보들을 UI 기반으로 관리 할 수 있다.


General:

List Plusgins:현재 설치된 플러그인들을 조회 및 관리 할수 있음

install new Plugin : 새로운 플러그인을 설치 할 수 있음.



CLI 를 사용하여 API , controller , model, service, policy, plugin 생성은 아래 주소를 참고 하도록하자.


https://strapi.io/documentation/cli/CLI.html
























반응형