Статьи

Как создать CRUD REST API с помощью Elixir и Phoenix Quick Start

Этот пост покажет, как создать REST API с помощью Elixir и Phoenix Framework. В центре внимания будет предоставление конечных точек CRUD (создание, чтение, обновление, удаление) для модели, которая сохраняется в базе данных Postgres. Я должен предупредить вас; это тривиальный пример. Но, надеюсь, это поможет вам продвинуться вперед в вашем путешествии по Эликсиру и Фениксу.

Дополнительная информация : я использую Akka и Scala для создания REST API. Подобно Акке, у Эликсира есть основания для Эрланга. Я фанат модели Erlang для асинхронной обработки. Как человек не может быть? Ну, распределенные асинхронные системы трудно отлаживать, но я отступаю. Как я уже сказал, я все еще фанат этой модели за возможность масштабирования. И приятно вернуться к свободному языку типов в эликсире.

Сначала установите требования

  1. Установите Elixir (Подробности: http://elixir-lang.org/install.html. Следуйте этим инструкциям, потому что Erlang включен. Я использовал homebrew для установки)
  2. Установите Hex, запустив в терминале:

    Эликсир Hex установить

    1
    mix local.hex
  3. Установите Феникс:
    1
    mix archive.install https://github.com/phoenixframework/archives/raw/master/phoenix_new.ez
  4. Может быть, установить Node.js как зависимость для управления активами. Смотрите раздел «node.js» здесь http://www.phoenixframework.org/docs/installation
  5. Установите Postgres. Я использую Postgres.app на Mac. Убедитесь, что у пользователя postgres есть пароль от postgres

Во-вторых, давайте строить

  1. В окне терминала создайте базовое приложение, выполнив:

    Новое приложение Phoenix Framework

    1
    mix phoenix.new api_spike

    Назовите api_spike как хотите. Вас могут попросить установить зависимости. Я сказал да! (Ссылка: шаг 4 в первом разделе выше)

  2. Зайдите в свой новый каталог api_spike:
    1
    cd api_spike
  3. Создайте базу данных Postgres для использования в приложении:
    1
    mix ecto.create

    Справочная информация: проверьте настройки Postgres в файле conf / dev.exs, если это не работает. Соединение по умолчанию использует имя пользователя postgres с паролем postgres . Смотрите Шаг 5 выше.

  4. Создайте модель и получите множество других вещей бесплатно:
    1
    mix phoenix.gen.json User users fullname:string email:string age:integer

    Примечание: задача phoenix.gen указывает json. Вы также можете создавать HTML-представления, если используете phoenix.gen.html. Это то, что испортило меня, когда я впервые попробовал Феникс.

  5. Откройте файл web / router.ex, раскомментируйте область действия API и добавьте новую строку для вновь созданного UserController из предыдущего шага. Это должно выглядеть так:

    Phoenix REST API

    1
    2
    3
    4
    scope "/api", ApiSpike do
      pipe_through :api
      resources "/users", UserController, except: [:new, :edit]
    end
  6. Обновите базу данных, выполнив:

    1
    mix ecto.migrate
  7. Готово. Запусти Феникс!
    1
    mix phoenix.server

В-третьих, попробуйте

Теперь мы можем сделать несколько вызовов для выполнения операций CRUD, таких как create:

1
2
     
curl -H "Content-Type: application/json" -X POST -d '{"user": {"fullname": "Todd", "email": "[email protected]", "age": 19}}' http://localhost:4000/api/users

А теперь читает:

1
curl -H "Content-Type: application/json" http://localhost:4000/api/users
1
curl -H "Content-Type: application/json" http://localhost:4000/api/users/1

Обновить:

Обновление фреймворка для Phoenix

1
curl -H "Content-Type: application/json" -X PUT -d '{"user": {"fullname": "Not Todd", "email": "[email protected]", "age": 43}}' http://localhost:4000/api/users/1

И, наконец, удалите:

1
curl -H "Content-Type: application/json" -X DELETE http://localhost:4000/api/users/1

Ешь, пей, танцуй и веселись

Я назвал этот пост практическим руководством по какой-то причине. Он призван помочь вам начать создавать REST API с помощью Phoenix, а Elixir — более комфортно. Если вам нужна дополнительная информация, просто свяжитесь со мной в Twitter или оставьте комментарий ниже.

Ссылка: Как создавать CRUD REST API с помощью Elixir и Phoenix. Краткое руководство от нашего партнера по JCG Тодда МакГрата из блога Supergloo .