Этот пост покажет, как создать 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
-   Установите Феникс:
1mix 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:
1cdapi_spike
-   Создайте базу данных Postgres для использования в приложении:
1mix ecto.createСправочная информация: проверьте настройки Postgres в файле conf / dev.exs, если это не работает. Соединение по умолчанию использует имя пользователя postgres с паролем postgres . Смотрите Шаг 5 выше. 
-   Создайте модель и получите множество других вещей бесплатно:
1mix 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
-   Готово.  Запусти Феникс!
1mix 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 . |