티스토리 뷰

Phalcon 마이크로와 REST API

앞서 Phalcon 웹 프레임워크를 소개한 바 있다. [관련 링크] 이번 글에서는 PhalconMicro 클래스를 이용하여 REST API를 작성하는 방법을 소개하고자 한다.

Rewrite Rules 작성

프로젝트 루트 디렉토리에 .htaccess 파일을 아래와 같이 작성한다. Apacherewrite 모듈에 읽혀져 REST 친화적인 Pretty Urls 기능을 수행하게 된다.

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteRule ^((?s).*)$ index.php?_url=/$1 [QSA,L]
</IfModule>
  • 프로젝트 루트로 들어오는 모든 요청을 index.php가 수행하도록 한다. Path(ex: /v1/hello)에 해당하는 문자열은 _url이라는 쿼리스트링에 담아 index.php에 전달한다. 반드시 _url 이름으로 담아야 Micro 클래스에 의해 인지되어 정상적으로 라우팅이 작동하게 된다.

index.php 작성

프로젝트 루트 디렉토리에 index.php 파일을 아래와 같이 작성한다.

<?php

use Phalcon\Http\Response;
use Phalcon\Mvc\Micro;

$app = new Micro();

$app->get(
    "/v1/hello/{name}",
    function ($name) use ($app) {
        $res = new Response();
        $res->setStatusCode(200);
        $res->setContentType("application/json", 'UTF-8');
        $res->setContent(json_encode(array(
            "message" => "Hello, $name!",
        ), JSON_PRETTY_PRINT));

        return $res;
    }
);

$app->handle();
  • GET /v1/hello/{name} 요청이 들어오면 JSON으로 Hello, {name}!을 출력하는 간단한 기능을 구현했다.

  • 단 2개 파일 만으로 REST API 기능 구현이 끝났다. 추가로 로드되는 PHP 파일은 단 1개도 없다. 나머지는 C로 작성된 4MB 크기의 Phalcon의 확장 모듈이 초고속으로 작동하여 처리한다.

참고 글

댓글
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/03   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
31
글 보관함