This is a proof-of-concept for a webapp created with Karax for frontend, Jester for API server, Norm for ORM, and Norman for migration management.
- Clone the repo and
cd
into the repo dir:
$ git clone [email protected]:moigagoo/shop-api.git $ cd shop-api
- Create
.env
from.env_example
:
$ cp .env_example .env
- Build the image:
$ docker-compose build
- Start
web
service and enter the container:
$ docker-compose run --rm --service-ports web bash
- Apply the migrations:
$ norman migrate
- Run the app:
$ nimble run --deepcopy:on
- Open your browser at
localhost:5000
and play around. - Send requests to it in a separate terminal:
$ curl -s http://localhost:5000/api/customers/1 | jq { "auth": { "email": "[email protected]", "googleToken": "", "id": 1 }, "name": "Alice 1", "age": 21, "id": 1 } $ curl -s 'http://localhost:5000/api/customers/?page=3&per_page=2' | jq [ { "auth": { "email": "[email protected]", "googleToken": "", "id": 5 }, "name": "Alice 5", "age": 25, "id": 5 }, { "auth": { "email": "[email protected]", "googleToken": "", "id": 6 }, "name": "Alice 6", "age": 26, "id": 6 } ] $ curl -X DELETE -s http://localhost:5000/api/customers/2 $ curl -X POST --data '[email protected]&token=AbC123' http://localhost:5000/api/customers/ 11