Danver97 / restaurant-catalog-service

A simple restaurant catalog management service.
0 stars 0 forks source link

API /restaurants/{restId}/images implementation #2

Open Danver97 opened 5 years ago

Danver97 commented 5 years ago

Implementazione dell'endpoint /restaurants/{restId}/images secondo le seguenti specifiche RAML

schemas: 
    Error:
        properties:
            error: string
    UUID:
        type: string
        pattern: ^[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-4[0-9A-Fa-f]{3}-[89ABab][0-9A-Fa-f]{3}-[0-9A-Fa-f]{12}$
/images:
            post:
                description: Add new Images to Restaurant
                headers: 
                body: 
                    application/json:
                        properties:
                            restId: UUID
                            images: string[]
                responses: 
                    200:
                        body:
                            application/json:
                    400:
                        body:
                            application/json:
                                type: Error
            delete:
                description: Remove the provided images from Restaurant
                headers: 
                body: 
                    application/json:
                        properties:
                            restId: UUID
                            images: string[]
                responses: 
                    200:
                        body:
                            application/json:
                    400:
                        body:
                            application/json:
                                type: Error
Danver97 commented 5 years ago

Per la gestione delle immagini una soluzione può essere la seguente. Le immagini verranno salvate su AWS S3, ma tramite una liberia apposita condivisa tra i vari microservizi. Ciò comporta che ogni servizio rimane "cloud agnostic": non è consapevole dove siano salvate le immagini ma conosce solo la libreria da sfruttare per ottenerle e caricarle. Questo comporta che se in futuro S3 non coprisse più tutte le funzionalità richieste, tramite una nuova implementazione dell'interfaccia fornita dalla libreria è possibile affidarsi ad un altro servizio.