이 글은 Akka in action
Chapter.2를 읽고 작성한 글입니다.
이 챕터에서는 어떻게 간단한 Akka 앱을 만드는지를 공부할 수 있는 챕터이다. 여기서 사용되는 정확한 인프라들은 추후 책 뒤에서 자세하게 다룬다. 그 전에 어떻게 Akka 코드를 사용하여 REST API를 만들 수 있는지 알아볼 예정이다.
Akka REST API를 만들기 위하여 Spray 관련 레포지토리들을 추가하였다.
<repositories>
<repository>
<id>spray repo</id>
<name>spray repo</name>
<url>https://repo.spray.io</url>
<layout>default</layout>
</repository>
<repository>
<id>spray nightlies</id>
<name>spray nightlies</name>
<url>https://http://nightlies.spray.io</url>
</repository>
</repositories>
위와 같은 코드들을 추가한다. 이때, maven 버전이 3.8.4인 경우 이 포스트에 작성된 것처럼 settings.xml을 설정하지 않으면 오류가 발생하니 주의한다.
com.typesafe.akka
의 akka-actor
과 akka-slf4j
, io.spray
의 spray-can
, spray-routing
, spray-json
을 추가한다.
io.spray 관련 페이지에서 원하는 버전을 가져와서 DependencyManger 내부의 dependency 태그에 추가하면 된다.
(dependency를 전부 가져오기에는 너무 길어져서 실제 코드는 생략한다.)
우리는 다음과 같은 간략한 REST API들을 만들 것이다.
위의 API들은 티켓을 조회하고 구매할 수 있는 가상의 애플리케이션의 API들이라고 하고, 우리는 위의 API들을 구현해야 한다.
먼저 애플리케이션을 만들기 전에 구조를 구상해야 한다.
Actor System
이 생성된다.위의 RestInterface는 HTTP를 위한 어댑터 역할을 할 것이다. 즉, HTTP request body의 JSON을 처리한 후 HTTP 응답으로 보내도록 할 것이다.
이렇게 PUT
이라는 http method를 처리하기 위하여 들어온 JSON형태로 HTTP body에 전달된 데이터를 RestInterface가 받아 처리하도록 하는 것이다.