# elixir-phoenix-rest-api **Repository Path**: markhoo/elixir-phoenix-rest-api ## Basic Information - **Project Name**: elixir-phoenix-rest-api - **Description**: A simple example of a rest API with elixir and phoenix - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2023-06-22 - **Last Updated**: 2024-11-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Elixir Phoenix Rest API This project is all generated by phoenix framework. Actually I just spent time removing the static files and configuring the application to run with docker. Which is a good point to the framework because at least to the bootstrap makes everything faster and easier. Cloning this project: ```bash git clone git@github.com:maxcnunes/elixir-phoenix-rest-api.git rest_api ``` ## Development ### Running Locally To start your Phoenix app: 1. Install dependencies with `mix deps.get` 1. Set the env variable `DATABASE_URL="ecto://user:password@db/rest_api_dev"` (you may change the values) 1. Create and migrate your database with `mix ecto.create && mix ecto.migrate` 1. Start Phoenix endpoint with `mix phoenix.server` Now you can visit [`localhost:4000`](http://localhost:4000) from your browser. ### Running With Docker 1. Create and migrate your database with `docker-compose run --rm local sh -c "mix ecto.create && mix ecto.migrate` 1. Start Phoenix endpoint with `docker-compose run --rm local` Now you can visit `:` from your browser. Or in case your are using [dockito-proxy](https://github.com/dockito/proxy) [api.local.dockito.org](api.local.dockito.org). ### Example requests with CURL **List** ```bash curl http://api.local.dockito.org/posts ``` **Create** ```bash curl -H "Content-Type: application/json" \ -X POST \ -d '{"post": {"title":"Title 001","content":"Content 001"} }' \ http://api.local.dockito.org/posts ``` **Update** ```bash curl -H "Content-Type: application/json" \ -X PUT \ -d '{"post": {"title":"Title 001 Updated","content":"Content 001 Updated"} }' \ http://api.local.dockito.org/posts/1 ``` **Delete** ```bash curl -X DELETE \ http://api.local.dockito.org/posts/1 ``` ## Test ### Testing Locally ```shell mix test ``` ### Testing With Docker ```shell docker-compose run --rm test ```