GithubHelp home page GithubHelp logo

prova_photo_si's Introduction

INTRODUZIONE

Progetto di prova pratica per PhotoSi di Simone Corbelli. Il progetto e' composto 4 microservizi e un servizio di api gateway. Tutti i sono indipendenti uno dall'altro e gia' pronti all'avvio e uso, comunque vengono esplicitati maggiori dettagli in seguito.

PREREQUISITI

Tutti i servizi sono stati creati con:

  1. DOT NET. 6 scaricabile da qui
  2. PostgreSql 16 scaricabile da qui. Vengono pero' supportate anche versioni piu' vecchie di postgre
  3. Visual studio 2022

SERVIZI

API-GATEWAY

MICROSERVIZI

Ogni microservizio e' corredato di test e al primo avvio si occupa di creare in automatico il proprio database ed effettuarne un seeding, in piu' per ogni microservizio e' presente un appsettings.json e un appsettings.Development.json (automaticamente usato in fase di debug).

N.B.: Ricordasi nella stringa di connessione al database di settare correttamente la porta del db, username e password N.B.: E' importante prima di avviare i test di dare un normale avvio al servizio per far creare il database e relative tabelle

ApiService (Api Gateway)

Servizio di Api Gateway che si occupa di contattare tutti i microservizi, espone delle api REST. Il servizio prevede un controller UserController con cui simulare la registrazione utente (POST http://ip:9000/api/v1/user) e il login utente (POST http://ip:9000/api/v1/user/{userId}), e' poi possibile piazzare un ordine (POST http://ip:9000/api/v1/order) tramite OrderController passandogli Nome ordine, Id indirizzo consegna e lista degli id dei prodotti con le quantita'. Sono comunque disponibili le api per contattare tutti i relativi microservizi ed ottenere/aggiungere/modificare Utenti, Prodotti, Indirizzi e Ordini. Di default parte sulla porta 9000, e' comunque possibile modificarla cambiandola nel file launchSettings.json. I file di appsettings.json e appsettings.Development.json sono strutturati nel seguente modo:

Proprieta' Tipo Default Descrizione
ProductServiceUrl string http://localhost:9001/api/ Url del microserizio Product
AddressBookServiceUrl string http://localhost:9002/api/ Url del microserizio AddressBook
OrderServiceUrl string http://localhost:9003/api/ Url del microserizio Order
UserServiceUrl string http://localhost:9004/api/ Url del microserizio User

Orders Service

Servizio che si occupa di piazzare e recuperare gli ordini, espone delle api REST richiamate dall'api gateway. Di default parte sulla porta 9003, e' comunque possibile modificarla cambiandola nel file launchSettings.json. Di default crea il database con nome order. I file di appsettings.json e appsettings.Development.json sono strutturati nel seguente modo:

Proprieta' Tipo Descrizione
PostgreSql string Stringa di connessione al database

AddressBook Service

Servizio che si occupa di recuperare, modificare e inserire gli indirizzi, espone delle api REST richiamate dall'api gateway. Di default parte sulla porta 9002, e' comunque possibile modificarla cambiandola nel file launchSettings.json. Di default crea il database con nome address_book. I file di appsettings.json e appsettings.Development.json sono strutturati nel seguente modo:

Proprieta' Tipo Descrizione
PostgreSql string Stringa di connessione al database

Products Service

Servizio che si occupa di recuperare, modificare e inserire i prodotti, espone delle api REST richiamate dall'api gateway. Di default parte sulla porta 9001, e' comunque possibile modificarla cambiandola nel file launchSettings.json. Di default crea il database con nome product. I file di appsettings.json e appsettings.Development.json sono strutturati nel seguente modo:

Proprieta' Tipo Descrizione
PostgreSql string Stringa di connessione al database

Users Service

Servizio che si occupa di recuperare, modificare e inserire gli utenti, espone delle api REST richiamate dall'api gateway. Di default parte sulla porta 9004, e' comunque possibile modificarla cambiandola nel file launchSettings.json. Di default crea il database con nome user. I file di appsettings.json e appsettings.Development.json sono strutturati nel seguente modo:

Proprieta' Tipo Descrizione
PostgreSql string Stringa di connessione al database

prova_photo_si's People

Contributors

corbellisimone avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.