-
Notifications
You must be signed in to change notification settings - Fork 0
Comunicaciones internas
Nombre | Descripcion | Topico | Key | Message | Emisor | Receptor(es) |
---|---|---|---|---|---|---|
topics | Topicos detectados por el sistema de topic modeling | topics | <id_post> | ["topic_a", "topic_b"] | topicmodelingservice | PostsService |
offensive | Respuesta del sistema de detección de texto ofensivo | offensive_text | <id_post> | true|false | offensivetextdetectionservice | PostsService |
lang_detection | Respuesta del sistema de detección de idioma | lang_detection | <id_post> | "idioma (ISO Code)" | langdetectionservice | PostsService |
new_post | Notificacion de que se ha creado un nuevo post | post | <id_post> | "texto del post" | PostsService | lang/topics/offensive services |
logging | Envio de logs | service_logs | <nombre_servicio_emisor> | "el log a enviar" | Todos los Servicios | logstash |
/soap/addPost
idioma: "es"
/soap/addRegisteredUser
TODO: ver después
/soap/addCreatedChat
/soap/addFollow
/soap/addTranslation
Meter id usuario
/soap/addTextToSpeech
Meter id usuario
follower: <id_usuario_follower>, // el que sigue
followee: <id_usuario_followee> // al que le siguen
GET: /api/posts
- Limit (int): Numero de resultados por consulta (default=10)
- Offset (int): A partir de qué post se devuelve resultado (default=0)
- User (long): ID del usuario del que queremos obtener los posts
- Language (string): String del lenguaje de los posts a obtener
{
“links”: {
“self”: “url_actual”,
“first”: “url_primeros_elementos”,
“prev”: “url_pagina_anterior”,
“next”: “url_pagina_siguiente”,
“last”: “url_ultima_pagina”
},
“count”: 10,
“total”: 500,
“posts”: [
{
id: 1,
content: “”,
language: “en”,
topics: [
“topic_a”, “other topic”, “sample”
],
is_offensive: false,
likes: 150,
user: <id_usuario_autor>
},
…
{
id: 10,
…
}
]
}
GET: /api/posts/
{
id: 1,
content: “”,
language: “en”,
topics: [
“topic_a”, “other topic”, “sample”
],
is_offensive: false,
likes: 150,
user: <id_usuario_autor>
}
POST: /api/posts
Los campos de idioma, id, topics, is_offensive y likes los crea automáticamente el servicio, por lo que no hace falta introducir mucha info aquí.
{
content: “”,
user: <id_usuario_autor>
}
201 - Created
DELETE: /api/posts/
Código deleted
GET: /api/statistics
[{
"registeredUsers": {
"total": 11,
"learning": {
"en": 6,
"es": 7
},
"native": {
"es": 10,
"ru": 1
}
},
"createdPosts": {
"total": 100,
"en": 5,
"es": 6,
...
},
"createdChats": 7
}]
GET: /api/users/<id>/statistics
[
{
"createdPosts": {
"total": 100,
"en": 5,
"es": 6,
...
},
"numFollowing": 10,
"numFollowers": 5
"translationsMade": 20,
"textToSpeechMade": 10
}
]
GET: /api/users
- Limit (int): Numero de resultados por consulta (default=10)
- Offset (int): A partir de qué post se devuelve resultado (default=0)
- MinAge (int): Edad mínima de los usuarios a buscar
- MaxAge (int): Edad máxima de los usuarios a buscar
- WantsToLearn (string[]): Lista de idiomas (ISO) que está aprendiendo los usuarios (or)
- Speaks (string[]): Lista de idiomas (ISO) que hablan los usuario (or)
{
"links": {
"self": "",
"first": "",
"prev": "",
"next": "",
"last": ""
},
"hits": 2,
"total": 2,
"users": [
{
"id": 1,
"username": "pedro",
"name": "pedro",
"surname": "suarez",
"learning": [
"es",
"en"
],
"speaks": "",
"birthDate": "1970-01-02T10:17:36.789+00:00",
"avatar": ""
},
{
"id": 3,
"username": "pedro3",
"name": "pedro",
"surname": "suarez",
"learning": [
"es",
"en",
"ru"
],
"speaks": "cat",
"birthDate": "1614416676",
"avatar": ""
}
]
}
200 OK
N/A
GET: /api/users/<id>
{
"id": 1,
"username": "pedro",
"name": "pedro",
"surname": "suarez",
"learning": [
"es",
"en"
],
"speaks": [],
"birthDate": 1233254568,
"avatar": ""
}
404: Not found
POST: /api/users/
{
"username": "pepiiii",
"password": "admin123",
"email": "[email protected]",
"name": "Pepito",
"surname": "Sanchez Perez"
"learning": [“en”, "ru"],
"speaks": "es",
"birthDate": "<long_time_since_epoch>",
"avatar": b"imagenCodificadaEnBase64"
}
201 - Created En la cabecera -> link al recurso { "name": "Pepito", "surname": "Sanchez Perez" "learning": [“en”, "ru"], "speaks": "es", "birthDate": "<long_time_since_epoch>", "avatar": b"imagenCodificadaEnBase64", "followers": [], "following": [] }
409 - Conflict: Si el email o el username ya existen.
PUT: /api/users/<id>
{
"learning": [“en”, "ru"],
"speaks": "es",
"avatar": b"imagenCodificadaEnBase64",
"following": ["<id_siguiendo1>", "<id_siguiendo2>", ..., "<id_siguiendon>"],
"followers": ["<id_seguidor1>", "<id_seguidor2>", ..., "<id_seguidorn>"]
}
200 - Ok (actualización completada) 204 - No Content (no enviaste nada, no hubo nada que actualizar)
404 - Not Found
DELETE: /api/users/
#### Resultado válido 200 - Ok
404 - Not Found
GET: /api/chats
En la cabecera viene el usuario del que sacar los chats.
[
{
"id": 1,
"lastUpdated": <long_time_since_epoch>,
"messages": "<url_get_messages>" (/api/chats/1/messages),
"user1": "<url_get_user1>",
"user2": "<url_get_user2>"
},
...
]
200 ok
N/A
GET: /api/chats/<id>/messages
Importante comprobar que en el pasaporte el usuario tenga permisos para ver los chats (p.ej. si es un chat entre menganito y fulanito, que paco no lo pueda ver).
[
{
"id": 1,
"createdAt": <long_time_since_epoch>,
"text": "Hola, Buenas",
"sender": "<url_get_user>"
},
{
"id": 2,
"createdAt": <long_time_since_epoch>,
"text": "respuesta",
"sender": "<url_get_user>"
},
...
]
404 - Not Found: El chat no existe 401 - Unauthorized: Si un usuario intenta ver mensajes en un chat en el que no participa.
POST: /api/chats/<id>/messages
El id del usuario autor del mensaje viene en el header. Habría que cogerlo y añadirlo al mensaje.
{
"text": "Hola, Buenas"
}
201 - Created En la cabecera -> link al recurso
{
"id": 1,
"createdAt": <long_time_since_epoch>,
"text": "Hola, Buenas",
"sender": "<url_get_user>"
}
404 - Not Found: El chat no existe 401 - Unauthorized: Si un usuario intenta crear un mensaje en un chat en el que no participa.
POST: /api/translations
{
"sourceLanguage": "es",
"targetLanguage": "en",
"text": "texto a traducir"
}
{
"sourceLanguage": "es",
"targetLanguage": "en",
"text": "texto a traducir",
"translation": "text to translate"
}
429 - Too Many Requests: Se nos acabó la plata
POST: /api/textsToSpeeches
{
“language”: “<codigo-idioma>”,
“text”: “texto a ttsear”
}
{
“result”: “<audio codificado de alguna manera. Depende de la api…>”
}
429 - Too Many Requests Se nos acabó la plata