a file-based rest api client
Project description
athena
athena is a file-based rest api client.
$ pip install haondt-athena
$ athena init
$ cat << EOF > athena/hello.py
from athena.client import Athena
def run(athena: Athena):
client = athena.client()
client.get('http://echo.jsontest.com/key/value')
EOF
$ athena responses athena/hello.py
hello •
│ execution
│ │ environment: __default__
│
│ timings
│ │ http://echo...m/key/value ························ 470ms
│
│ traces
│ │ http://echo.jsontest.com/key/value
│ │ │ │ GET http://echo.jsontest.com/key/value
│ │ │ │ 200 OK 470ms
│ │ │
│ │ │ response
│ │ │ │ headers
│ │ │ │ │ Access-Control-Allow-Origin | *
│ │ │ │ │ Content-Type | application/json
│ │ │ │ │ X-Cloud-Trace-Context | 35b9c247eaaa4175c1949b97dd13548a
│ │ │ │ │ Date | Fri, 05 Jul 2024 20:33:16 GMT
│ │ │ │ │ Server | Google Frontend
│ │ │ │ │ Content-Length | 17
│ │ │ │
│ │ │ │ body | application/json [json] 17B
│ │ │ │ │ 1 {
│ │ │ │ │ 2 "key": "value"
│ │ │ │ │ 3 }
│ │ │ │ │
│ │ │ │
│ │ │
│ │
│
athena provides a lightweight alternative to full-blown api platforms like Postman with a few key advantages:
- You are free to use any text editor you would like as the api client. Lightweight editors like Neovim or VSCode allow for a much thinner client.
- As the workbook is just a collection of plaintext files, you can keep it in the same git repo as the project it is testing.
- Since requests are just python modules, you can script to your hearts content, and leverage external python libraries.
Installation
athena can be installed as a pypi package or from source. athena requires python>=3.11.
# from pypi
python3 -m pip install haondt-athena
# from gitlab
python3 -m pip install haondt-athena --index-url https://gitlab.com/api/v4/projects/57154225/packages/pypi/simple
# from source
git clone https://gitlab.com/haondt/athena.git
python3 -m pip install .
Usage
Quickstart guide and API / CLI reference available here: https://docs.haondt.dev/athena/
Development
Running Tests
How to run the E2E tests
- build docker images for the api echo server and for the test runner images
./tests/e2e/build_dockerfile.sh
- start both images to run the tests
./tests/e2e/run_tests.sh
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
haondt_athena-5.0.4.tar.gz
(44.2 kB
view details)
Built Distribution
File details
Details for the file haondt_athena-5.0.4.tar.gz
.
File metadata
- Download URL: haondt_athena-5.0.4.tar.gz
- Upload date:
- Size: 44.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 70af48236f59421bce2d3f4ad162d5ed0e6096925cdc18675b175699d19adb9f |
|
MD5 | 0ce432c493f8076504d2bdbfcf9d1506 |
|
BLAKE2b-256 | 21f86955d799624b2635e93bd58cb056562e22abb2359e58ebfe42a49c3fa06d |
File details
Details for the file haondt_athena-5.0.4-py3-none-any.whl
.
File metadata
- Download URL: haondt_athena-5.0.4-py3-none-any.whl
- Upload date:
- Size: 36.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/5.1.1 CPython/3.12.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 41a8c63710aecf1aba2068395237af16f68dd488312c11cd68e56d2aa234bec4 |
|
MD5 | 7d1ae65fcc1b500e83dc67fcbfaf5526 |
|
BLAKE2b-256 | 8f97d9cd68184726e985230157d4ea819bd6033a806af7c659fa100ab18e0563 |