...
Lorsque vous configurez une adresse type "rest", donc vers un websevice en écoute, esup-signature va tenté de transmettre les données via GET et via POST.
Voici à quels moments les requettes sont transmisent :
- À chaque signature / refus (avec le motif)
- À la suppression / suppression définitive
- À la restautation
- À la fin du circuit
Les statuts transmis sont les suivants : pending, refused, deleted, restored, cleaned, completed
Voici la liste (et le format) des données transmisent :
...
| Bloc de code | ||||
|---|---|---|---|---|
| ||||
from http.server import BaseHTTPRequestHandler, HTTPServer
from urllib.parse import urlparse, parse_qs
import json
class SimpleHTTPRequestHandler(BaseHTTPRequestHandler):
def do_GET(self):
# Parse l'URL et ses paramètres
parsed_path = urlparse(self.path)
query_components = parse_qs(parsed_path.query)
# Affiche les informations dans la console
print("Received GET request:")
print(f"Path: {self.path}")
print("Query parameters:")
for key, values in query_components.items():
for value in values:
print(f" {key}: {value}")
# Prépare la réponse (simple pour le client)
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b"<html><body><h1>GET request received</h1></body></html>")
def do_POST(self):
# Récupère la longueur des données envoyées
content_length = int(self.headers['Content-Length'])
# Récupère le corps de la requête
post_data = self.rfile.read(content_length)
# Tente de décoder les données comme JSON
try:
json_data = json.loads(post_data)
print("Received POST request with JSON data:")
print(json.dumps(json_data, indent=4))
except json.JSONDecodeError:
print("Received POST request with invalid JSON")
json_data = {"error": "Invalid JSON"}
# Prépare la réponse (simple pour le client)
self.send_response(200)
self.send_header('Content-type', 'text/html')
self.end_headers()
self.wfile.write(b"<html><body><h1>POST request received</h1></body></html>")
def run(server_class=HTTPServer, handler_class=SimpleHTTPRequestHandler, port=8000):
server_address = ('', port)
httpd = server_class(server_address, handler_class)
print(f"Starting server on port {port}...")
httpd.serve_forever()
if __name__ == '__main__':
run()
|
| Avertissement |
|---|
Attention à partir du moment où une destination REST à été mise en place, il faut qu'il y ai au moins un web service GET ou POST qui répond sinon les créations, signature, et refus ne pourront pas fonctionner. |
...
Définir les participants à un circuit à posteriori
...