Page 1 sur 1

Requêtes API REST

MessagePublié: 02 Juillet 2015, 14:40
par Rictus
Bonjour,

J'ai récemment pris connaissance de l'API CUB mais j'aimerais savoir si ce que je réalise est possible.
Je possède un serveur avec lequel je voudrais requêter votre API afin d'obtenir les données (je possède bien une clé d'API).
J'ai pris connaissance de ce site qui m'a aidé a construire des requêtes : http://sig.bordeaux-metropole.fr/apicub/wxsquery/
Cela dit, ça devient plutôt compliqué lorsque l'on veut filtrer les données avec plusieurs critères.
Existes-t-il un moyen plus simple pour obtenir les données que Bordeaux propose ? Est-il possible de faire des jointures (un peu comme en SQL..) entre différentes couches (horaire et arrêt par exemple) ?
Dans l'idéal, je voudrais récupérer les X prochains horaires d'un arrêt donné, pour un sens donné, pour une ligne donné.

Merci d'avance pour votre réponse.

Re: Requêtes API REST

MessagePublié: 02 Juillet 2015, 15:03
par Sébastien Cart-Lamy
Bonjour,
Tout ce que vous évoquez est possible. Vous pouvez retrouver des exemples sur le SAEIV Bus utilisant l'API CUB, les WebServices et des jointures ici : http://data.bordeaux-metropole.fr/apicub-eg#saeiv

N'hésitez pas à poster un message ici si besoin

Re: Requêtes API REST

MessagePublié: 02 Juillet 2015, 15:48
par Rictus
Bonjour,

L'écriture d'un filtre est assez fastidieuse, surtout dans une URL.
Et pour les jointures entre couches, tel que je le comprend, il faudrait que je rapatrie un maximum de données vers mon serveur pour ensuite trier et ne prendre que ce qui m'interesse.
Exemple : Je veux les horaires des arrêts dont le Libellé est X ou Y.
1 > Je requête la couche Arret pour récupérer les GID qui m’intéressent.
2 > Je requête la couche Horaire avec les GID obtenu précédemment.
Est-il possible de faire cela en une seule requête ?
Il y a peut-être une partie que je n'ai pas compris.

Merci, ces démos sont d'aide précieuse.

Re: Requêtes API REST

MessagePublié: 03 Juillet 2015, 10:02
par Sébastien Cart-Lamy
Bonjour,

Les WebServices permettent de rapatrier tout ou partie des objets d'une couche. Pour faire une jointure entre deux couches, il faut donc appeler le WebService deux fois.
Votre utilisateur n'a pas forcément besoin de voir tous les horaires de toutes les couches à la fois. Vous pouvez deux faire en deux temps :
  • Charger les arrêts
  • Lors d'un clic / sélection d'un arrêt par l'utilisateur, charger les horaires de cet arrêt
C'est ce qui est fait dans l'exemple "Lignes en temps réel", avec les couches SV_ARRET_P et SV_HORAI_A + les filtres WFS.
http://data.bordeaux-metropole.fr/dev/exemples/saeiv_lignes.php

Autre point, il existe des traitements WPS, étant le résultat de jointures entre couches. Utilisez le plugin WPS QGIS pour les essayer. Voici la liste à ce jour :
  • saeiv_lipub_arret : Lieux publics desservis par un arrêt
  • saeiv_arrets_flexo : Arrêts d'une zone Flexo
  • saeiv_arrets_chemin : Arrêts d'un chemin de ligne
  • saeiv_arret_passages : Tous les passages (horaires) sur un arrêt

L'écriture des filtres WFS / WPS paraît fastidieuse, mais d'une part le générateur de requête vous facilite grandement la vie, et d'autre part, il faut bien sa donner un peu de peine pour faire une bonne application ;)

Re: Requêtes API REST

MessagePublié: 22 Décembre 2015, 18:32
par pierrepm
saeiv_lipub_arret : Lieux publics desservis par un arrêt
saeiv_arrets_flexo : Arrêts d'une zone Flexo
saeiv_arrets_chemin : Arrêts d'un chemin de ligne
saeiv_arret_passages : Tous les passages (horaires) sur un arrêt


Bonjour, d'apres ce que je comprends ce sont ces couches (calculées) qui m'interessent mais qu'on ne peut tester que avec QJIS.
Du coup quand on a les données qui nous intéresse, comment passer de QJIS à la requête URL qu'on va mettre dans notre page web ?

Je vous remercie et vous souhaites de bonnes fetes

Re: Requêtes API REST

MessagePublié: 05 Janvier 2016, 18:01
par Sébastien Cart-Lamy
Bonjour,
Petite rectification de vocabulaire : les 4 traitements que vous citez ne sont pas des couches, puisqu'il s'agit de réelles fonctions dynamiques qui prennent des paramètres en entrée, et renvoient un résultat (certains avec des objets cartographiques).

QGIS n'est qu'un outil de visualisation. Si vous voulez utiliser ces webservices dans une appli web, je vous invite à regarder nos exemple API CUB, qui sont développé en full web : http://data.bordeaux-metropole.fr/apicub-eg#saeiv