Elixir에서 만든 소설가가 되려는 API 래퍼를 출시했습니다.

Elixir에서 소설가가 될 API 래퍼가 없었기 때문에 만들었습니다.

Elixir처럼 작성할 수 있도록 파이프 운영자가 쿼리를 실행할 수 있습니다.

리포지토리

설치



mix.exs

# Elixirのバージョンは1.10以上必要

def deps do
  [
    {:narou, git: "https://github.com/harukikubota/narou.git"}
  ]
end

사용법



소설 검색


iex> use Narou
iex> Narou.init(%{type: :novel})
    |> select([:t, :w])
    |> where(ncode: "n2267be")
    |> Narou.run!

    {
      :ok,
      1,
      [
        %{
          title: => "Re:ゼロから始める異世界生活",
          writer: => "鼠色猫/長月達平"
        }
      ]
    }

순위 검색



여기에서는 날짜와 랭킹 타입을 지정하여 작품마다 포인트를 취득합니다.
iex> use Narou
iex> Narou.init(%{type: :rank})
    |> where(y: 2020, m: 03, d: 31, t: :d)
    |> Narou.run!

    {
      :ok,
      [
        %{"ncode" => "N7378GC", "pt" => 4450, "rank" => 1},
        %{"ncode" => "N7529GB", "pt" => 4280, "rank" => 2},
        %{"ncode" => "N2361GC", "pt" => 3698, "rank" => 3},
        %{...},
        ...
    }


전당들이 검색



이곳은 작품을 지정하여 언제 어느 랭킹에 들어갔는지 검색합니다.
iex> use Narou
iex> Narou.init(%{type: :rankin})
    |> where(ncode: "n2267be")
    |> Narou.run!

    {:ok,
      [
        %{pt: 90, rank: 103, rtype: "20130501-d"},
        %{pt: 4739, rank: 72, rtype: "20130501-m"},
        %{pt: 9947, rank: 86, rtype: "20130501-q"},
        %{...},
        ...
    }


사용자 검색


iex> use Narou
iex> Narou.init(%{type: :user})
    |> select([:userid, :name, :yomikata])
    |> where(userid: 235132)
    |> Narou.run!

    {
      :ok,
      1,
      [
        %{
          name: "鼠色猫/長月達平",
          userid: 235132,
          yomikata: "ネズミイロネコ/ナガツキタッペイ"
        }
      ]
    }


기타 미세 기능



세세한 사용법 등은 iex 에서 모듈 도움말에서 참조할 수 있도록 하고 있습니다. iex> h Narou

나로



API 유형과 초기 매개변수를 설정합니다.
lib/narou/api_struct/init/1 의 반환값 구조체가 정의되고 있습니다.

Narou.Query


select , where , order 를 정의하고 있습니다.

Narou.ApiKeyNameConverter


select 절에 지정된 키 이름의 테이블을 볼 수 있습니다.

후기



필자는 Elixir의 공부를 시작한 지 아직 일주일이지만, 지금까지의 것을 무사히 릴리스 할 수있었습니다.

Ruby에서의 라이브러리 개발 경험도 크지만 Elixir의 언어 기능이 강력한 덕분에 편하게 쓸 수 있습니다 w

마지막으로 한마디.


샴푸는 좋다 삼촌 "샴푸 괜찮아."

좋은 웹페이지 즐겨찾기