[readme] update with instructions
This commit is contained in:
parent
387fc01f44
commit
c2cea298bf
108
README.md
108
README.md
|
@ -1,18 +1,6 @@
|
||||||
# HalfAPI
|
# HalfAPI
|
||||||
|
|
||||||
|
Base tools to develop comlex API with rights management.
|
||||||
This Python-based ASGI application aims to provide the core functionality to
|
|
||||||
multiple API domains.
|
|
||||||
|
|
||||||
It's developed at the [LIRMM](https://lirmm.fr) in Montpellier, France.
|
|
||||||
|
|
||||||
The name "halfAPI" comes from the deep relationship between it and
|
|
||||||
[halfORM](https://gite.lirmm.fr/newsi/halfORM), a project authored by
|
|
||||||
[Joël Maizi](https://gite.lirmm.fr/maizi).
|
|
||||||
|
|
||||||
You'll need a database with the API details. You can find the database model in halfapi/models/api.sql
|
|
||||||
|
|
||||||
**TODO :** include a token generation tool for testing purpose.
|
|
||||||
|
|
||||||
|
|
||||||
## Dependencies
|
## Dependencies
|
||||||
|
@ -20,67 +8,65 @@ You'll need a database with the API details. You can find the database model in
|
||||||
- python3
|
- python3
|
||||||
- python3-pip
|
- python3-pip
|
||||||
- libgit2-dev
|
- libgit2-dev
|
||||||
|
- starlette
|
||||||
|
- PyJWT
|
||||||
|
- click
|
||||||
|
- uvicorn
|
||||||
|
- orjson
|
||||||
|
- pyyaml
|
||||||
|
|
||||||
|
|
||||||
## Installing
|
## Configuration
|
||||||
|
|
||||||
|
Configure HalfAPI in the file : .halfapi/config .
|
||||||
|
|
||||||
|
It's an **ini** file that contains at least two sections, project and domains.
|
||||||
|
|
||||||
|
### Project
|
||||||
|
|
||||||
|
The main configuration options without which HalfAPI cannot be run.
|
||||||
|
|
||||||
|
**name** : Project's name
|
||||||
|
|
||||||
|
**halfapi_version** : The HalfAPI version on which you work
|
||||||
|
|
||||||
|
**secret** : The file containing the secret to decode the user's tokens.
|
||||||
|
|
||||||
|
**port** : The port for the test server.
|
||||||
|
|
||||||
|
**loglevel** : The log level (info, debug, critical, ...)
|
||||||
|
|
||||||
|
|
||||||
With local folder :
|
### Domains
|
||||||
|
|
||||||
`pip3 install -r requirements.txt .[cli]`
|
The name of the options should be the name of the domains' module, the value is the
|
||||||
|
submodule which contains the routers.
|
||||||
|
|
||||||
|
Example :
|
||||||
|
|
||||||
|
dummy_domain = .routers
|
||||||
|
|
||||||
|
|
||||||
From the repository :
|
## Usage
|
||||||
|
|
||||||
`pip3 install git+ssh://git@gite.lirmm.fr:malves/halfapi.git[cli]`
|
Develop an HalfAPI domain by following the examples located in
|
||||||
|
tests/dummy_domain . An HalfAPI domain should be an importable python module
|
||||||
|
that is available in the python path.
|
||||||
|
|
||||||
|
Run the project by using the `halfapi run` command.
|
||||||
|
|
||||||
|
|
||||||
## CLI usage
|
## API Testing
|
||||||
|
|
||||||
|
@TODO
|
||||||
|
|
||||||
|
|
||||||
## Running
|
### Example
|
||||||
|
|
||||||
### Development mode
|
Check out the [sample project](https://github.com/halfAPI/halfapi_sample_project)
|
||||||
|
that helps you to build your own domain.
|
||||||
In the project's folder :
|
|
||||||
|
|
||||||
`halfapi run`
|
|
||||||
|
|
||||||
|
|
||||||
### Production
|
## Development
|
||||||
|
|
||||||
The production server may use different init systems. As our main server is Debian-based, we use systemd services to manage the api server. Find the right service files and configure them properly in order to make your production setup perfect.
|
@TODO
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
cp conf/systemd/lirmm_api* /etc/systemd/system/
|
|
||||||
systemctl daemon-reload
|
|
||||||
systemctl start lirmm_api
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
To make it start at boot :
|
|
||||||
|
|
||||||
|
|
||||||
`systemctl enable lirmm_api`
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
To get the logs :
|
|
||||||
|
|
||||||
|
|
||||||
```
|
|
||||||
journalctl -f --unit lirmm_api
|
|
||||||
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
## Testing
|
|
||||||
|
|
||||||
### Installing
|
|
||||||
|
|
||||||
pip3 install .[cli][tests]
|
|
||||||
|
|
||||||
### Running
|
|
||||||
|
|
||||||
pytest -v
|
|
||||||
|
|
Loading…
Reference in New Issue