[파이썬] Tornado에서의 API 개발

Tornado는 Python으로 작성된 고성능 비동기 웹 프레임워크로, API 개발에 적합한 많은 기능과 도구를 제공합니다. 이 블로그 포스트에서는 Tornado를 사용하여 API를 개발하는 방법에 대해 살펴보겠습니다.

Tornado 프로젝트 설정

먼저, Tornado를 사용하여 API를 개발하기 위해 Tornado 프로젝트를 설정해야 합니다. 아래는 기본 Tornado 프로젝트 구조입니다.

- myproject/
  - main.py
  - handlers/
    - __init__.py
    - api.py
  - settings.py
  - templates/
    - index.html
  - static/
    - css/
    - js/

API 핸들러 작성

API 핸들러는 클라이언트 요청을 처리하고 해당 요청에 대한 응답을 반환하는 역할을 합니다. 아래는 간단한 예시입니다.

# handlers/api.py

import tornado.web

class HelloWorldHandler(tornado.web.RequestHandler):
    def get(self):
        self.write("Hello, World!")

class UserHandler(tornado.web.RequestHandler):
    def get(self, user_id):
        user = self.get_user_by_id(user_id)
        if user:
            self.write(f"User ID: {user_id}, Name: {user['name']}")
        else:
            self.set_status(404)

Tornado 애플리케이션 구성

위에서 작성한 API 핸들러를 사용하기 위해 Tornado 애플리케이션을 구성해야 합니다. main.py 파일을 열고 다음과 같이 작성하세요.

# main.py

import tornado.ioloop
import tornado.web
from handlers.api import HelloWorldHandler, UserHandler
import settings

def make_app():
    return tornado.web.Application([
        (r"/", HelloWorldHandler),
        (r"/user/(\d+)", UserHandler),
    ], **settings.APPLICATION_SETTINGS)

if __name__ == "__main__":
    app = make_app()
    app.listen(settings.APPLICATION_PORT)
    tornado.ioloop.IOLoop.current().start()

설정 파일 작성

Tornado 애플리케이션의 설정 정보는 settings.py 파일에 저장됩니다. 예를 들어, 아래와 같이 포트 번호와 애플리케이션 설정을 정의할 수 있습니다.

# settings.py

APPLICATION_PORT = 8000

APPLICATION_SETTINGS = {
    "debug": True,
    "template_path": "templates",
    "static_path": "static",
}

서버 실행

API 개발이 완료되었으므로, Tornado 서버를 실행하여 API를 테스트할 수 있습니다. 터미널에서 다음 명령을 실행하세요.

python main.py

브라우저에서 http://localhost:8000에 접속하면 “Hello, World!” 메시지가 표시될 것입니다. 또한 http://localhost:8000/user/1과 같은 경로로 접속하면 해당 사용자의 정보가 표시됩니다.

결론

Tornado를 사용하여 API를 개발하는 방법에 대해 알아보았습니다. Tornado는 비동기 처리와 고성능을 지원하여 대규모 API 서비스에 적합한 프레임워크입니다. 다양한 기능과 유용한 도구를 활용하여 효율적으로 API를 개발할 수 있습니다.