GithubHelp home page GithubHelp logo

pltosman / eshop-microservice Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 171 KB

This project is a simple .Net 5.0 code for microservice architecture patterns using MediatR, CQRS, and Docker.

C# 98.94% Dockerfile 1.06%
microservices mongodb postgresql dotnet-core rabbitmq

eshop-microservice's Introduction

Microservice EShop

This project is a simple .Net 5.0 code for microservice architecture pattern using MediatR, CQRS, and Docker.

Services

By now, the functional services are still decomposed into four core services. Each of them can be tested, built, and deployed independently.

![Infrastructure plan](add link)

Core service

Provides several API for user authentication and authorization with OAuth 2.0.

Method Path Description Scope
POST /api/v1/Auth/createtoken Get new access token ui
POST /api/v1/Auth/loginwithemail Login with email address and password ui
POST /api/v1/Auth/refreshtoken Get refresh access token ui
POST /api/v1/Register/register Create new customer ui
POST /api/v1/Confirmation/emailconfirmation Get refresh access token ui
POST /api/v1/Confirmation/emailconfirm Get refresh access token ui
POST /api/v1/Password/resetpassword Update customer's password ui

Product service

Provides several API for product with OAuth 2.0.

Method Path Description Scope Privilege
POST /api/v1/product Create new product ui ALL_ACCESS
GET /api/v1/product Get All product information ui READ_BASIC_INFORMATION
GET /api/v1/productsByMerchant{merchantName} Get All product information by Merchant Name ui READ_BASIC_INFORMATION
PUT /api/v1/product/ Update product with id server ALL_ACCESS
GET /api/v1/product/{id} Get current product with id server ALL_ACCESS
DELETE /api/v1/product/{id} Delete current product with id server ALL_ACCESS

Order service

Method Path Description Scope
POST /api/v1/Order Create new Order ui
POST /api/v1/Order/ChangeOrderStatus Change order status with order id and status ui
GET /api/v1/Order/GetOrdersByMerchantNameQuery/{merchantName} Get all order indormation by Merchant name ui

Payment service

Method Path Description Scope
POST /api/v1/PaymentUrl Create new Payment ui
POST /api/v1/Payment Set Token for Payment provider ui
GET /api/v1/Payment Get Token for Payment provider ui

APIGateway

RabbitMQ

MongoDb

docker pull mongo

docker run -d -p 27017:27017 --name EShopMongoDb mongo

Serilog

docker run -d --restart unless-stopped --name seq -e ACCEPT_EULA=Y -v 'PATH':/data -p 8081:80 datalust/seq:latest

Notes

  • Each microservice has it's own database and there is no way to access the database directly from other services.
  • The services in this project are using MySQL, PostgreSQL, MongoDB for the persistent storage. In other case, it is also possible for one service to use any type of database (SQL or NoSQL).
  • Service-to-service communication is done by using RabbitMQ.

Important Endpoint *

eshop-microservice's People

Contributors

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