Skip to content
This repository was archived by the owner on Jan 25, 2022. It is now read-only.

Latest commit

聽

History

History
57 lines (49 loc) 路 6.47 KB

0300-Especificacion-de-servicios.md

File metadata and controls

57 lines (49 loc) 路 6.47 KB

Especificaci贸n de Servicios

A continuaci贸n se hace un desglose de los servicios que componen esta aplicaci贸n. Para obtener informaci贸n detallada sobre cada uno de ellos se recomienda acceder a su documento markdown correspondiente pinchando sobre 茅l.

Servicios Web Externos Utilizados

Proveedor Servicio Justificaci贸n Utilizaci贸n Problemas
Google Cloud Traducci贸n Se emplea para traducir texto de un idioma de origen a uno de destino. A trav茅s de un cliente para .Net que ofrece Google a trav茅s de NuGet. -
Google Cloud Detecci贸n de Idioma Se emplea para predecir el idioma de un post, de esta forma podemos etiquetarlo para posteriormente ofrecer traducci贸n. A trav茅s de un cliente para .Net que ofrece Google a trav茅s de NuGet. -
Google Cloud Subida de archivos Se emplea para predecir el idioma de un post, de esta forma podemos etiquetarlo para posteriormente ofrecer traducci贸n. A trav茅s de un cliente para .Net que ofrece Google a trav茅s de NuGet. -

Servicios Web de Consumo Interno

Servicio Justificaci贸n Utilizaci贸n Problemas D贸nde se usa
StatisticsService Se emplea para gestionar las estad铆sticas del sistema y a nivel de usuarios (n煤mero de posts creados, usuarios registrados por idioma...) Ofrece un endpoint SOAP que es consumido por los clientes del servicio La generaci贸n de c贸digo con el script wsimport.cmd dio muchos problemas en los proyectos desarrollados con Spring debido a que cambia el layout de paquetes (esto lo podemos explicar con calma si es necesario en una llamada o por correo) TextToSpeechService (Cliente Python), UsersService (Java), TranslationService (.NET), PostsService(.NET), APIGateway(Java) - cliente web
UsersService Se emplea para gestionar los usuarios (creaci贸n, b煤squeda...) Ofrece un endpoint REST que es consumido por los clientes del servicio - APIGateway (Java) - clientes m贸vil y web
PostsService Se emplea para gestionar los posts. Ofrece un endpoint rest utilizado por el api gateway. Internamente hace uso de una cola de Kafka para comunicarse con los servicios de procesamiento de texto (offensive text detection, topic modeling y language identification) - Offensive Text Detection, Topic Modeling, Language Identification y APIGateway - clientes m贸vil y web
ChatsService Se emplea para gestionar los chats y mensajes de la aplicaci贸n Ofrece un endpoint rest utilizado por el api gateway - APIGateway - cliente m贸vil
TextToSpeechService Permite a los clientes obtener audio a partir de un texto dado Ofrece un endpoint REST a los clientes - APIGateway - cliente m贸vi帽
TranslationService Permite a los clientes traducir un texto de un idioma a otro Ofrece un endpoint REST a los clientes - APIGateway - cliente m贸vil
AuthenticationService Gestiona los tokens de los usuarios para poder acceder a las operaciones del sistema Comunicaci贸n a trav茅s de gRPC con el API Gateway - APIGateway
ImagesService Procesa las im谩genes con el avatar de cada usuario y las almacena en un bucket de Google Cloud Storage para poder ser consumidas p煤blicamente por los clientes.聽 聽Ofrece un endpoint soap El uso de attachments y MTOM para transmitir la imagen hizo que no se pudiera implementar en .NET Core ya que SoapCore no los soporta actualmente. La implementaci贸n se llev贸 a cabo en Java聽 UsersService (al crear un nuevo usuario llama a este servicio para procesar su avatar)聽
TopicModelingService Genera una lista de t贸picos para los posts creados en la aplicaci贸n Se comunica a trav茅s de una cola de Kafka con el servicio de posts para recibir actualizaciones de cu谩ndo se crea un post nuevo - PostsService (cuando se detectan los t贸picos se llama al servicio de posts por la cola para avisarle)
OffensiveTextDetectionService Procesa un texto para detectar si es potencialmente ofensivo o no Se comunica a trav茅s de una cola de Kafka con el servicio de posts para recibir actualizaciones de cu谩ndo se crea un post nuevo - PostsService (cuando se detectan si un texto es ofensivo se llama al servicio de posts por la cola para avisarle)
LanguageIdentificationService Identifica el idioma de un texto Se comunica a trav茅s de una cola de Kafka con el servicio de posts para recibir actualizaciones de cu谩ndo se crea un post nuevo - PostsService (cuando se detecta el idioma del texto se llama al servicio de posts por la cola para avisarle)

Servicios Web Ofrecidos para Consumo Externo

Servicio Justificaci贸n Utilizaci贸n Problemas Para qui茅n se ofrece
API Gateway Ofrece un punto de entrada a los clientes del sistema. Permite una gesti贸n centralizada de la autenticaci贸n y un mayor control sobre las peticiones entrantes en el sistema Ofrece un enpoint REST para que utilicen los usuarios Uso de https desde el cliente m贸vil (ver documentaci贸n de API Gateway para m谩s informaci贸n聽 Clientes del sistema (cliente web y m贸vil)

Descripci贸n de la API P煤blica

Endpoint M茅todo Descripci贸n
/api/auth/tokens POST Generaci贸n de tokens.
/api/users?filters GET Listar usuarios.
/api/users POST Crear usuarios.
/api/users/{id} GET Acceder a un usuario espec铆fico.
/api/users/{id} PUT Actualizar los datos de un usuario.
/api/users/{id} DELETE Eliminar un usuario.
/api/chats GET Muestra los chats del usuario que realiz贸 la petici贸n.
/api/chats POST Crea un chat.
/api/chats/{id} GET Muestra un chat en concreto
/api/chats/{id}/messages GET Devuelve los mensajes de un chat.
/api/chats/{id}/messages POST Crea un mensaje en un chat.
/api/statistics GET Devulve las estad铆sticas del sistema.
/api/translations POST Traduce un texto al idioma deseado.
/api/textstospeechs POST Pasa unb texto a voz.
/api/health GET Indica si la aplicaci贸n est谩 activa.