-
Notifications
You must be signed in to change notification settings - Fork 3
Platzi Swag HLD
Dante Calderón edited this page Feb 4, 2021
·
1 revision
Este microservicio se relacion con los siguientes microservicios:
**Users**
Proveer un microservicio que permita que permita un usuario postear fotos sobre los productos comprados en la tienda Platzi Store.
Mas especificamente este microservicio provee:
- Crear/Actualizar/Eliminar Posts
- Listar Posts a base de filtros
- Dar Like a Posts
- Cache
- Analytics
- Multi-size imagenes (por ahora solo guardaremos la imagen original)
- Node
- Nestjs(framework)
- Typescript
- MongoDB (Database)
Este servicio provee una REST API.
Post Schema
{
"_id": "600c8f1ca4cdc243ff0159f4", // identifier
"description": "Comparte tu estilo con la comunidad",
"image": { // same image, with multiple sizes
"original": "https://image.png",
"sm": "https://image-sm.png",
..more sizes
},
"location": {
"type": "Point", // enum [Point],
"name": "Bogota, Colombia",
"coordinates": [-2312.0, -123.32],
},
"linkedProducts": [ // Productos etiquetados
"600c87fa4c23109a31483ac3",
"600c8803234ddf57242ac68a"
],
"tags": [ // tags que son sacados de la descripcion(los que viene en forma de hashtags)
"PlatziSwag",
"Camisas",
"Hoddies"
]
"commentsEnabled": true,
"comments": [ // referencia a los comentarios (MS Comentarios)
"600bb5e135f100c23bc21b3f",
"600bb5e87f8de9b7c4192d05"
]
"createdBy": { // data del usuario que creo el post, estos datos vienen del microservicio Usuarios
"id": "83d33945-e7e9-4eb7-b8d1-ecf24c1e7774",
"name": "John Doe",
"avatar": "https://small.png",
},
"likedBy": [ // ids de los usuario que le dieron like al post
"4e0da41c-40c7-427b-bf8d-431509518e8a",
"8eccf60a-fc1f-48a5-b0eb-ec12338f8e3b",
]
"createdAt": "2021-01-23T03:17:35.530Z",
"updatedAt": "2021-01-23T03:17:35.530Z",
}Esta microservicio esta acoplado a los siguientes microservicios:
-
Usersnecesita los siguientes datos para el campocreatedBy.{ "id": "83d33945-e7e9-4eb7-b8d1-ecf24c1e7774", "name": "John Doe", "avatar": "https://small.png", }💡 Esto probablemente podria venir en el token del usuario.