Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
This repository was archived by the owner on Jan 25, 2022. It is now read-only.

Comunicaciones internas

Alejandro González Hevia edited this page Feb 23, 2021 · 8 revisions

Kafka

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

StatisticsService

1.- Añadir un post

/soap/addPost

Ejemplo de entrada

idioma: "es"

2.- Añadir un 'registro' de usuario

/soap/addRegisteredUser

Ejemplo de entrada

TODO: ver después

3.- Añadir un chat creado

/soap/addCreatedChat

4.- Añadir un follow de usuario

/soap/addFollow

5.- Nueva traducción de un usuario

/soap/addTranslation

Meter id usuario

6.- Nuevo tts de un usuario

/soap/addTextToSpeech

Meter id usuario

Ejemplo de entrada

follower: <id_usuario_follower>, // el que sigue
followee: <id_usuario_followee> // al que le siguen

REST

PostsService

1.- Listado de posts con paginación + filtros

GET: /api/posts

Query params:

  • 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

Resultado válido:

{
	"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,
		...
	}
	]
}

2.- Obtener datos de un post

GET: /api/posts/

Resultado válido:

{
	id: 1,
	content: "",
	language: "en",
	topics: [
		"topic_a", "other topic", "sample"
	],
	is_offensive: false,
	likes: 150,
	user: <id_usuario_autor>
}

3.- Crear un nuevo post

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í.

Ejemplo de entrada (body):

{		
	content: "",
	user: <id_usuario_autor>
}

Resultado válido:

201 - Created

4.- Eliminar un post existente

DELETE: /api/posts/

Resultado válido:

Código deleted


StatisticsService

1.- Obtener estadísticas del sistema

GET: /api/statistics

Resultado válido:

[{
 "registeredUsers": {
 "total": 11,
 "learning": {
 "en": 6,
 "es": 7
 },
 "native": {
 "es": 10,
 "ru": 1
 }
 },
 "createdPosts": {
 "total": 100,
 "en": 5,
 "es": 6,
 ...
 },
 "createdChats": 7
}]

2.- Obtener estadísticas de un usuario

GET: /api/users/<id>/statistics

Resultado válido

[
{
 "createdPosts": {
 "total": 100,
 "en": 5,
 "es": 6,
 ...
 },
 "numFollowing": 10,
 "numFollowers": 5
 "translationsMade": 20,
 "textToSpeechMade": 10
}
]

UsersService

1.- Listado de usuarios con paginación + filtros

GET: /api/users

Query params:

  • 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)

Resultado válido:

{
	"links": {
		"self": "url_actual",
		"first": "url_primeros_elementos",
		"prev": "url_pagina_anterior",
		"next": "url_pagina_siguiente",
		"last": "url_ultima_pagina"
	},
	"count": 10,
	"total": 500,
	"users": [
	{
		"id": 1,
 "name": "Pepito",
 "surname": "Sanchez Perez"
		"learning": ["en", "ru"],
 "speaks": "es",
 "age": 32,
 "avatar": "<url_del_avatar>",
 "followers": ["<url_get_carmen>", "<url_get_paco>"],
 "following": ["<url_get_fulanito>", "<url_get_menganita>"]
	},
	...
	{
		"id": 10,
		...
	}
	]
}

200 OK

Resultados inválidos

N/A

2.- Obtener usuario específico

GET: /api/users/<id>

Resultado válido:

{
 "id": 1,
 "name": "Pepito",
 "surname": "Sanchez Perez"
 "learning": ["en", "ru"],
 "speaks": "es",
 "age": 32,
 "avatar": "<url_del_avatar>",
 "followers": ["<url_get_carmen>", "<url_get_paco>"],
 "following": ["<url_get_fulanito>", "<url_get_menganita>"]
}

#### Resultados inválidos 404: Not found

3.- Crear un usuario

POST: /api/users/

Ejemplo de entrada

{
 "username": "pepiiii",
 "password": "admin123",
 "email": "pepi@gmail.com",
 "name": "Pepito",
 "surname": "Sanchez Perez"
 "learning": ["en", "ru"],
 "speaks": "es",
 "age": 32,
 "avatar": b"imagenCodificadaEnBase64"
}

Resultado válido

201 - Created En la cabecera -> link al recurso { "name": "Pepito", "surname": "Sanchez Perez" "learning": ["en", "ru"], "speaks": "es", "age": 32, "avatar": b"imagenCodificadaEnBase64", "followers": [], "following": [] }

Resultado inválido

409 - Conflict: Si el email o el username ya existen.

MessagesService


TranslationService

1.- Realizar una traducción

POST: /api/translations

Ejemplo de entrada (body)

{
	"from": "<codigo-idioma>",
	"to": "<codigo-idioma>",
	"text": "texto a traducir"
}

Respuesta válida

{
	"translation": "texto traducido"
}

Respuesta inválida

429 - Too Many Requests: Se nos acabó la plata

TextToSpeechService

1.- Convertir texto a audio

POST: /api/textsToSpeeches

Ejemplo de entrada (body)

{
	"language": "<codigo-idioma>",
	"text": "texto a ttsear"
}

Respuesta válida

{
	"result": "<audio codificado de alguna manera. Depende de la api...>"
}

Respuesta inválida

429 - Too Many Requests Se nos acabó la plata

Clone this wiki locally

AltStyle によって変換されたページ (->オリジナル) /