Этот пост покажет, как создать REST API с помощью Elixir и Phoenix Framework. В центре внимания будет предоставление конечных точек CRUD (создание, чтение, обновление, удаление) для модели, которая сохраняется в базе данных Postgres. Я должен предупредить вас; это тривиальный пример. Но, надеюсь, это поможет вам продвинуться вперед в вашем путешествии по Эликсиру и Фениксу.
Дополнительная информация : я использую Akka и Scala для создания REST API. Подобно Акке, у Эликсира есть основания для Эрланга. Я фанат модели Erlang для асинхронной обработки. Как человек не может быть? Ну, распределенные асинхронные системы трудно отлаживать, но я отступаю. Как я уже сказал, я все еще фанат этой модели за возможность масштабирования. И приятно вернуться к свободному языку типов в эликсире.
Сначала установите требования
- Установите Elixir (Подробности: http://elixir-lang.org/install.html. Следуйте этим инструкциям, потому что Erlang включен. Я использовал homebrew для установки)
- Установите Hex, запустив в терминале:
Эликсир Hex установить
1mix
local
.hex
- Установите Феникс:
1
mix archive.
install
https:
//github
.com
/phoenixframework/archives/raw/master/phoenix_new
.ez
- Может быть, установить Node.js как зависимость для управления активами. Смотрите раздел «node.js» здесь http://www.phoenixframework.org/docs/installation
- Установите Postgres. Я использую Postgres.app на Mac. Убедитесь, что у пользователя postgres есть пароль от postgres
Во-вторых, давайте строить
- В окне терминала создайте базовое приложение, выполнив:
Новое приложение Phoenix Framework
1mix phoenix.new api_spike
Назовите api_spike как хотите. Вас могут попросить установить зависимости. Я сказал да! (Ссылка: шаг 4 в первом разделе выше)
- Зайдите в свой новый каталог api_spike:
1
cd
api_spike
- Создайте базу данных Postgres для использования в приложении:
1
mix ecto.create
Справочная информация: проверьте настройки Postgres в файле conf / dev.exs, если это не работает. Соединение по умолчанию использует имя пользователя postgres с паролем postgres . Смотрите Шаг 5 выше.
- Создайте модель и получите множество других вещей бесплатно:
1
mix phoenix.gen.json User
users
fullname:string email:string age:integer
Примечание: задача phoenix.gen указывает json. Вы также можете создавать HTML-представления, если используете phoenix.gen.html. Это то, что испортило меня, когда я впервые попробовал Феникс.
- Откройте файл web / router.ex, раскомментируйте область действия API и добавьте новую строку для вновь созданного UserController из предыдущего шага. Это должно выглядеть так:
Phoenix REST API
1234scope
"/api"
, ApiSpike
do
pipe_through :api
resources
"/users"
, UserController, except: [:new, :edit]
end
- Готово. Запусти Феникс!
1
mix phoenix.server
Обновите базу данных, выполнив:
1
|
mix ecto.migrate |
В-третьих, попробуйте
Теперь мы можем сделать несколько вызовов для выполнения операций 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 . |