REST API 시작하기

이 튜토리얼에서는 CodeIgniter 4를 사용하여 책을 관리하는 간단한 RESTful API를 구축하는 과정을 안내합니다. 프로젝트 설정 방법, 데이터베이스 구성, API 엔드포인트 생성 방법 및 API가 RESTful해지기 위한 조건 등을 배웁니다.

이 튜토리얼은 주로 다음에 중점을 둡니다:

  • 자동 라우팅(개선됨)

  • JSON API 엔드포인트 생성

  • 일관된 응답을 위해 API ResponseTrait 사용

  • 모델을 사용한 기본적인 데이터베이스 작업

CodeIgniter의 기초를 다루지만, 최소한 첫 번째 애플리케이션 튜토리얼을 완료했다고 가정합니다.

설치 및 실행

CodeIgniter 설치

composer create-project codeigniter4/appstarter books-api
cd books-api
php spark serve

브라우저에서 http://localhost:8080 에 접속하면 CodeIgniter 환영 페이지가 보일 것입니다.

참고

터미널 하나에서 서버를 계속 실행해 두세요. 원한다면 언제든지 Ctrl+C 로 서버를 중지하고 php spark serve 로 다시 시작할 수 있습니다.

개발 모드 설정

환경 파일을 복사하고 개발 설정을 활성화합니다:

cp env .env

.env 파일을 열고 다음 라인의 주석이 해제되어 있는지 확인합니다:

CI_ENVIRONMENT = development

spark env 명령을 사용하여 환경을 설정할 수도 있습니다:

php spark env development

SQLite 설정

외부 설정이 필요 없도록 writable/ 디렉토리 아래에 단일 파일 SQLite 데이터베이스를 사용하겠습니다.

.env 파일을 열고 데이터베이스 섹션의 주석을 해제한 후 다음과 같이 설정합니다:

database.default.DBDriver = SQLite3
database.default.database = database.db
database.default.DBPrefix =
database.default.username =
database.default.password =
database.default.hostname =
database.default.port     =

CodeIgniter는 SQLite 데이터베이스 파일이 존재하지 않으면 자동으로 생성하지만, writable/ 디렉토리가 웹 서버에 의해 쓰기 가능해야 합니다.

경고

일부 시스템에서는 그룹/소유자를 조정하거나 개발 기간 동안 일시적으로 chmod 666 을 사용해야 할 수도 있습니다. 운영 환경에는 절대 모든 사용자에게 쓰기 권한(world-writable)을 부여하지 마십시오.

이제 SQLite가 설정된 작동 가능한 CodeIgniter4 프로젝트가 준비되었습니다.

  • 앱은 php spark serve 로 시작됩니다.

  • .env 에서 CI_ENVIRONMENTdevelopment 로 설정되었습니다.

  • writable/database.db 가 존재하고 쓰기 가능합니다.

다음 단계

다음 섹션에서는 자동 라우팅을 활성화하고 간단한 JSON 엔드포인트(/api/pings)를 생성하여 CodeIgniter에서 HTTP 동사가 어떻게 컨트롤러 메서드에 매핑되는지 확인하겠습니다.