3초만에 만드는 Elixir의 JsonAPI

4365 단어 Elixir

소개



얼마 전에, Elixir에서 JSON을 반환하는 간단한 API를 만들려고 할 때 오류가 발생한 기억이 있었기 때문에 적어 둡니다.

1초: 프로젝트 생성



프로젝트를 만듭니다.
mix phx.new jsonsan --no-ecto
Fetch and install dependencies? [Yn] 물론 Y 합니다.
설치가 완료되면,
cd jsonsan
mix phx.server

에서 서버가 시작된다고 생각합니다.
이번에는 라이브러리를 사용하지 않습니다.

2초: 컨트롤러 생성



우선 적당한 컨트롤러를 작성합니다.

jsonsan_web/controllers/data_controller.ex
defmodule JsonsanWeb.DataController do
  use JsonsanWeb, :controller

  def index(conn, _params) do
    msg = "PA PA YA!!"
    json(conn, %{message: msg})
  end
end
json() 를 사용하여 JSON을 반환합니다.

3초: 라우팅 설정



방금 만든 함수를 router.ex에서 호출합니다.

jsonsan_web/router.ex
defmodule JsonsanWeb.Router do
  use JsonsanWeb, :router

  pipeline :browser do
    plug :accepts, ["html"]
    plug :fetch_session
    plug :fetch_flash
    plug :protect_from_forgery
    plug :put_secure_browser_headers
  end

  pipeline :api do
    plug :accepts, ["json"]
  end

  scope "/", JsonsanWeb do
    pipe_through :browser

    get "/", PageController, :index
  end

  # Other scopes may use custom stacks.
  scope "/api", JsonsanWeb do
    pipe_through :api

    post "/", DataController, :index
  end
end
scope "/api" 라고 쓰는 곳이 처음에는 코멘트 아웃했다고 생각합니다.
이 부분의 주석 처리를 제거하고 DataController를 호출하십시오.

동작 확인



이제 mix phx.server를 사용하여 post 요청을 보내 JSON이 반환되는지 확인합니다.


이번에는 나는 postman에서 확인했습니다.
무사히 JSON이 돌아오고 있습니다! !



처음으로 api를 elixir로 만들려고 생각했을 때 put_flush가 어떻게든 말한 에러가 전혀 모르는 기억이 있었기 때문에, 또 만드는 방법을 잊어버리면 이 기사를 보고 떠올리려고 합니다.

고마워요.

좋은 웹페이지 즐겨찾기