Push support¶
Introduction¶
Extrawest OCPI supports push. This means that changes in objects and new objects are sent (semi) real-time to the receiver.
As for now you are able to specify on application initialization two parameters: http_push or websocket_push.
- If set http_push=True new endpoint will be added into the schema:
PUSH_PREFIX/{version}
which you’ll be able to use for sending the updates about your objects to.
Warning
It’s advised not to expose this endpoint (For internal usage only).
Note
Uses authorization header!
- If set websocket_push=True new websocket endpoint will be added into the schema:
PUSH_PREFIX/ws/{version}
which you’ll be able to use for sending the updates about your objects to.
Note
Uses token query_parameter for authentication!
Extended initialization example¶
main.py
from py_ocpi import get_application
from py_ocpi.core.enums import RoleEnum, ModuleID
from py_ocpi.modules.versions.enums import VersionNumber
from auth import ClientAuthenticator
from crud import Crud
app = get_application(
version_numbers=[VersionNumber.v_2_1_1],
roles=[RoleEnum.cpo],
modules=[ModuleID.locations],
authenticator=ClientAuthenticator,
crud=Crud,
http_push=True,
websocket_push=True,
)
Http push url example¶
http://127.0.0.1:8000/push/2.1.1
Connect to ws url example¶
ws://127.0.0.1:8000/push/ws/2.1.1?token=<your-valid-token>