https://github.com/profiq/swapi-elixir
The Star Wars API, reimplemented in Elixir. Example API for your projects.
https://github.com/profiq/swapi-elixir
api elixir openapi star-wars-api swapi tutorial-api
Last synced: 19 days ago
JSON representation
The Star Wars API, reimplemented in Elixir. Example API for your projects.
- Host: GitHub
- URL: https://github.com/profiq/swapi-elixir
- Owner: profiq
- License: bsd-3-clause
- Created: 2023-12-01T13:09:22.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2025-04-24T14:15:34.000Z (about 1 year ago)
- Last Synced: 2025-04-24T15:27:45.907Z (about 1 year ago)
- Topics: api, elixir, openapi, star-wars-api, swapi, tutorial-api
- Language: Elixir
- Homepage: https://swapi.profiq.com
- Size: 1.96 MB
- Stars: 2
- Watchers: 3
- Forks: 2
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# Elixir SWAPI
 [](https://swapi.profiq.com/) [](https://swapi-dev.profiq.com/)
The [Star Wars API](https://swapi.dev/) (SWAPI), reimplemented in [Elixir](https://elixir-lang.org/).
This project aims to be almost fully compatible with the original API (https://swapi.dev/), including pagination and search query parameters.

## Development
### Local environment
#### Prerequisites
The following software is required for local development:
* Elixir 1.15
* Erlang/OTP 26
* NodeJS 18+
#### Instructions
To start the server locally, follow these steps:
* Run `yarn` inside folder `assets` to install JavaScript dependencies
* Run `mix setup` to install and setup dependencies
* Start the API endpoint with `mix phx.server` or inside IEx with `iex -S mix phx.server`
Now you can visit [`localhost:4000`](http://localhost:4000) from your browser.
### Docker
The server can also be started under Docker by running `docker compose -f dev/docker-compose.yml up`. When started, the API will be accessible under the same port as when running locally ([`localhost:4000`](http://localhost:4000)).
## Common tasks
### Updating the Postman collection
The Postman collection is stored in `priv/static/downloads/swapi.postman_collection.json`. Whenever the API documentation changes, the collection should be updated to match.
You can generate a new collection file as follows:
1. Start the server.
2. Click "Import" in the workspace sidebar in Postman, enter the URL to the OpenAPI doc, e.g. `http://localhost:4000/api/openapi` and import the API as a Postman collection.
3. Open the "Elixir SWAPI" collection, go to the Variables tab in the main pane and change the `baseUrl` variable to `https://swapi.profiq.com`.
4. Right-click the "Elixir SWAPI" collection, click "Export" and choose the Collection 2.1 format.
5. Copy the exported collection to `priv/static/downloads/swapi.postman_collection.json`.