... | ... | @@ -10,13 +10,12 @@ Asi mismo, dentro de este caso de uso también se publicarán y difundirán las |
|
|
|
|
|
La plataforma, a diferencia de otros casos de uso, únicamente cuenta con la funcionalidad de **suscripción (recepción)** de información. Esta se realiza a través de un servicio de API REST, el cual se describe más adelante.
|
|
|
|
|
|
Dicha funcionalidad de recepción requiere de un certificado de acceso, el cual debe ser solicitado y suministrado por DGT 3.0. Este certificado, de no haber sido solicitado ya, se deberá solicitar a *[soporte@cmobility30.es](mailto:soporte@cmobility30.es)*.
|
|
|
Dicha funcionalidad de recepción requiere de un certificado de acceso, el cual debe ser solicitado y suministrado por DGT 3.0. Este certificado, de no haber sido solicitado ya, se deberá solicitar a [_soporte@cmobility30.es_](mailto:soporte@cmobility30.es).
|
|
|
|
|
|
A continuación se muestran las URLs de acceso a las funcionalidades del caso de uso.
|
|
|
|
|
|
| Modo | URL | Descripción |
|
|
|
| ----------- | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
|
| Suscripción | https://pre.cmobility30.es/use-case-7 | Endpoint del entorno de integración para la suscripción |
|
|
|
|------|-----|-------------|
|
|
|
| Suscripción | <https://pre.cmobility30.es/use-case-7> | Endpoint del entorno de integración para la suscripción |
|
|
|
|
|
|
## Suscripción
|
|
|
|
... | ... | @@ -27,86 +26,6 @@ Este caso de uso tiene un comportamiento similar al que ofrece la interfa de ban |
|
|
En el endpoint se publican las velocidades recomendadas en formato JSON. Aquí se puede ver un ejemplo:
|
|
|
|
|
|
```json
|
|
|
[
|
|
|
{
|
|
|
"properties": {
|
|
|
"lat": 43.358929976820946,
|
|
|
"lng": -4.044689973816276,
|
|
|
"timeStamp": "2022-08-29T13:02:21.037+02:00",
|
|
|
"vialidad": {
|
|
|
"roadDescription": "A-67/Palencia",
|
|
|
"direction": 1,
|
|
|
"affectedLength": 2524.0,
|
|
|
"roadMaxSpeed": 90.0
|
|
|
}
|
|
|
},
|
|
|
"recommendedSpeeds": [
|
|
|
{
|
|
|
"speed": 40,
|
|
|
"kmStart": 0.0,
|
|
|
"kmEnd": 12.399856336374242
|
|
|
},
|
|
|
{
|
|
|
"speed": 50,
|
|
|
"kmStart": 12.399856336374242,
|
|
|
"kmEnd": 27.279683940023332
|
|
|
},
|
|
|
{
|
|
|
"speed": 60,
|
|
|
"kmStart": 27.279683940023332,
|
|
|
"kmEnd": 44.63948281094727
|
|
|
},
|
|
|
{
|
|
|
"speed": 70,
|
|
|
"kmStart": 44.63948281094727,
|
|
|
"kmEnd": 64.47925294914606
|
|
|
},
|
|
|
{
|
|
|
"speed": 80,
|
|
|
"kmStart": 64.47925294914606,
|
|
|
"kmEnd": 86.7989943546197
|
|
|
},
|
|
|
{
|
|
|
"speed": 90,
|
|
|
"kmStart": 86.7989943546197
|
|
|
}
|
|
|
]
|
|
|
},
|
|
|
{
|
|
|
"properties": {
|
|
|
"lat": 43.35894003510475,
|
|
|
"lng": -4.045290034264326,
|
|
|
"timeStamp": "2022-08-29T13:02:21.038+02:00",
|
|
|
"vialidad": {
|
|
|
"roadDescription": "N-611/N-634",
|
|
|
"direction": 0,
|
|
|
"affectedLength": 3083.0,
|
|
|
"roadMaxSpeed": 90.0
|
|
|
}
|
|
|
},
|
|
|
"recommendedSpeeds": [
|
|
|
{
|
|
|
"speed": 60,
|
|
|
"kmStart": 0.0,
|
|
|
"kmEnd": 67.68004816990603
|
|
|
},
|
|
|
{
|
|
|
"speed": 70,
|
|
|
"kmStart": 67.68004816990603,
|
|
|
"kmEnd": 145.02867464979863
|
|
|
},
|
|
|
{
|
|
|
"speed": 80,
|
|
|
"kmStart": 145.02867464979863,
|
|
|
"kmEnd": 232.0458794396778
|
|
|
},
|
|
|
{
|
|
|
"speed": 90,
|
|
|
"kmStart": 232.0458794396778
|
|
|
}
|
|
|
]
|
|
|
}
|
|
|
]
|
|
|
```
|
|
|
|
|
|
A continuación se presenta una descripción de cada uno de los campos del JSON anterior. Dicho JSON, publica la información de una congestión concreta así como las velocidades recomendadas en diferentes puntos:
|
... | ... | @@ -132,11 +51,6 @@ En el documento se publica una lista de carreteras afectadas en las que existe u |
|
|
Todas las respuestas HTTP que no sean **200 – OK**, se pueden considerar **inválidas**. Independientemente del mensaje de error, el formato de la respuesta es como el siguiente ejemplo:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"status": 401,
|
|
|
"code": 1,
|
|
|
"message": "User not found or valid"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
La información relativa a los errores en este caso de uso se puede encontrar aquí. Estos errores tendrán tres categorías principales:
|
... | ... | @@ -144,17 +58,16 @@ La información relativa a los errores en este caso de uso se puede encontrar aq |
|
|
#### Error de Autentificación
|
|
|
|
|
|
- HTTP Status: **401 - Unauthorized**
|
|
|
|
|
|
| Code | Message |
|
|
|
| ---- | ----------------------- |
|
|
|
|------|---------|
|
|
|
| 1 | User not found or valid |
|
|
|
|
|
|
|
|
|
#### Error de Cliente
|
|
|
|
|
|
- HTTP Status: **400 - Bad Request**
|
|
|
|
|
|
| Code | Message |
|
|
|
| ---- | ------------------------------------------------------------------- |
|
|
|
|------|---------|
|
|
|
| 0 | Authenticate |
|
|
|
| 2 | Entity ID not found |
|
|
|
| 3 | Missing required property |
|
... | ... | @@ -166,20 +79,16 @@ La información relativa a los errores en este caso de uso se puede encontrar aq |
|
|
| 9 | Permission denied. Role assigned to user missing |
|
|
|
| 10 | There is an error in one or more elements |
|
|
|
|
|
|
A continuación se muestra una respuesta de *error 5 - Expired token received* la cual tendrá el siguiente formato:
|
|
|
|
|
|
A continuación se muestra una respuesta de _error 5 - Expired token received_ la cual tendrá el siguiente formato:
|
|
|
|
|
|
```json
|
|
|
{
|
|
|
"status": 400,
|
|
|
"code": 5,
|
|
|
"message": "Expired token received"
|
|
|
}
|
|
|
```
|
|
|
|
|
|
#### Error de Servidor
|
|
|
|
|
|
- HTTP Status: **500 - Internal Server Error**
|
|
|
|
|
|
| Code | Message |
|
|
|
| ---- | -------------- |
|
|
|
|------|---------|
|
|
|
| 28 | Internal error |
|
|
|
|