어떤 임의의 URL을 입력하면 JSON형식의 텍스트를 반환하는 API서버

 

프로젝트 생성

cmd터미널에서 mix new 명령으로 새프로젝트를 생성한다.

그러면 아래 처럼 내컴퓨터의 생성한 프로젝트 이름으로 폴더가 생긴다.

 

생성한 디렉터리로 들어가서 구조를 확인해봤다.

 

 

의존 라이브러리 추가하기

mix.exe파일에 끝에있는 deps함수를 수정한다. 프로젝트에서 의존하는 라이브러리를 추가하는 부분이다.

   나는 {:plug_cowboy , " ~> 1.0 " }, 이걸로 종속성을 수정해야 되었다.

 

밑에 mix명령어를 통해 로컬프로젝트 속으로 import시킨다.

 

 

다음은 application함수를 아래와 같이 수정하자

이 프로젝트에서사용될 어플리케이션들을 선언하는 부분이다.

 

아래와 같이 입력하면 iex 입력으로 바뀐다.

이 상태에서 앞서 mix설정에서 추가한 웹서버인 CowboyHTTP서버를 실행하자

아래 명령문을 통해 실행한다.

웹브라우저를 통한 확인

잘나오면 MyApp모듈이 Cowboy웹서버와 연동이 된것이다. 

 

 

API 서버 구현

URL/users/tom을 호출하면 사용자 프로필 정보를 JSON형식으로 출력하는 간단한 API서버가 된다.

my_app.ex파일 수정

get " /users/:name" do부분에서 URL맵핑을 통해 웹요청을 처리하고,

마지막 match _do부분은 이도저도 아닌 나머지 요청에 대한 처리(catch-all)루틴이다.

'|>'sms Elixir의 파이프 연산자이다.

 

명령행에서 API 서버 실행

IEx에 접속하여 Cowboy업데터를 호출하는 방법이 아닌 명령행에서 직접 API서버를 실행할 수 있도록 해보자

mix.exe파일을 열어 application함수를 아래와 같이 변경하자

mod키를 추가하여, 어플리케이션이 시작될 때 실행할 시작 모듈을 MyApp으로 지정하였다.

 

메인코드로 와서 start함수를 추가하자(어플리케이션이 시작될때 호출되는 함수다)

마지막으로 터미널에서 다음과 같이 mix run 명령어를 실행하면,

 

학습참고 

https://www.usefulparadigm.com/2017/02/03/building-a-json-api-server-using-elixir-and-plug/

+ Recent posts