3 Commits

Author SHA1 Message Date
Renato Ambrosone
b0bda64b39 FIX: correct command example
Change-Id: Idde1a192532d5a81fa8e3d7bff11c08a96eb0902
2025-03-27 11:26:55 +01:00
Renato Ambrosone
fbb3d1dc7a FIX: correct json example
Change-Id: Ic138d8bb3dc5147cd6fa0f446dbfe01528bee9be
2025-03-27 11:26:02 +01:00
Renato Ambrosone
2133ded1a8 FIX: Missing 'path-request' registration in app initialization
Change-Id: Ia1d842efc5a536e5e2ef98920194a8d05604ff3e
2025-03-26 18:07:37 +01:00
3 changed files with 1575 additions and 1095 deletions

View File

@@ -1,34 +1,14 @@
# GNPy API # GNPy API
[![Python versions](https://img.shields.io/pypi/pyversions/gnpy)](https://pypi.org/project/gnpy/)
REST API (experimental) REST API (experimental)
----------------------- -----------------------
``gnpyapi`` provides an experimental api for requesting several paths at once. It is based on Flask server. ``gnpyapi`` provides an experimental api for requesting several paths at once. It is based on Flask server.
You can run it through command line or Docker. You can run it through command line or Docker.
.. code-block:: shell-session
$ gnpy-rest
.. code-block:: shell-session
$ docker run -p 8080:8080 -it emmanuelledelfour/gnpy-experimental:candi-1.1 gnpy-rest
When starting the api server will aks for an encryption/decryption key. This key i used to encrypt equipment file when using /api/v1/equipments endpoint.
This key is a Fernet key and can be generated this way:
.. code-block:: python
from cryptography.fernet import Fernet
Fernet.generate_key()
After typing the key, you can detach the container by typing ^P^Q. $ curl --location 'http://localhost:8080/api/v1/path-request' --header 'Content-Type: application/json' --data @gnpyapi/exampledata/planning_demand_example.json
After starting the api server, you can launch a request
.. code-block:: shell-session
$ curl -v -X POST -H "Content-Type: application/json" -d @<PATH_TO_JSON_REQUEST_FILE> https://localhost:8080/api/v1/path-computation -k
TODO: api documentation, unit tests, real WSGI server with trusted certificates TODO: api documentation, unit tests, real WSGI server with trusted certificates

View File

@@ -5,3 +5,5 @@
from flask import Flask from flask import Flask
app = Flask(__name__) app = Flask(__name__)
import gnpyapi.core.route.path_request_route # noqa: F401, E402

File diff suppressed because it is too large Load Diff