Этот пост покажет, как создать REST API с помощью Elixir и Phoenix Framework. В центре внимания будет предоставление конечных точек CRUD (создание, чтение, обновление, удаление) для модели, которая сохраняется в базе данных Postgres. Я должен предупредить вас; это тривиальный пример. Но, надеюсь, это поможет вам продвинуться вперед в вашем путешествии по Эликсиру и Фениксу.
Дополнительная информация : я использую Akka и Scala для создания REST API. Подобно Акке, у Эликсира есть основания для Эрланга. Я фанат модели Erlang для асинхронной обработки. Как человек не может быть? Ну, распределенные асинхронные системы трудно отлаживать, но я отступаю. Как я уже сказал, я все еще фанат этой модели за возможность масштабирования. И приятно вернуться к свободному языку типов в эликсире.
Сначала установите требования
- Установите Elixir (Подробности: http://elixir-lang.org/install.html. Следуйте этим инструкциям, потому что Erlang включен. Я использовал homebrew для установки)
- Установите Hex, запустив в терминале:
Эликсир Hex установить
1mixlocal.hex - Установите Феникс:
1
mix archive.installhttps://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
cdapi_spike - Создайте базу данных Postgres для использования в приложении:
1
mix ecto.createСправочная информация: проверьте настройки Postgres в файле conf / dev.exs, если это не работает. Соединение по умолчанию использует имя пользователя postgres с паролем postgres . Смотрите Шаг 5 выше.
- Создайте модель и получите множество других вещей бесплатно:
1
mix phoenix.gen.json Userusersfullname:string email:string age:integerПримечание: задача phoenix.gen указывает json. Вы также можете создавать HTML-представления, если используете phoenix.gen.html. Это то, что испортило меня, когда я впервые попробовал Феникс.
- Откройте файл web / router.ex, раскомментируйте область действия API и добавьте новую строку для вновь созданного UserController из предыдущего шага. Это должно выглядеть так:
Phoenix REST API
1234scope"/api", ApiSpikedopipe_through :apiresources"/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": "phoenix@apiexample.com", "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": "phoenix@apiexample.com", "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 . |