{"id":36698321,"url":"https://github.com/d3ta-go/ms-email-restapi","last_synced_at":"2026-01-12T11:35:15.984Z","repository":{"id":56249772,"uuid":"312212193","full_name":"d3ta-go/ms-email-restapi","owner":"d3ta-go","description":"MicroService Interface/Presentation App: Email RestAPI","archived":false,"fork":false,"pushed_at":"2022-09-30T20:32:30.000Z","size":4046,"stargazers_count":0,"open_issues_count":1,"forks_count":1,"subscribers_count":2,"default_branch":"main","last_synced_at":"2024-06-20T05:11:53.103Z","etag":null,"topics":["ddd","ddd-architecture","interface-layer","microservice","rest-api"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/d3ta-go.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-11-12T08:23:12.000Z","updated_at":"2020-11-26T09:41:46.000Z","dependencies_parsed_at":"2023-01-18T22:45:38.346Z","dependency_job_id":null,"html_url":"https://github.com/d3ta-go/ms-email-restapi","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":"d3ta-go/project-template","purl":"pkg:github/d3ta-go/ms-email-restapi","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ta-go%2Fms-email-restapi","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ta-go%2Fms-email-restapi/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ta-go%2Fms-email-restapi/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ta-go%2Fms-email-restapi/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/d3ta-go","download_url":"https://codeload.github.com/d3ta-go/ms-email-restapi/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/d3ta-go%2Fms-email-restapi/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28338971,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-12T10:58:46.209Z","status":"ssl_error","status_checked_at":"2026-01-12T10:58:42.742Z","response_time":98,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ddd","ddd-architecture","interface-layer","microservice","rest-api"],"created_at":"2026-01-12T11:35:14.941Z","updated_at":"2026-01-12T11:35:15.977Z","avatar_url":"https://github.com/d3ta-go.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ms-email-restapi ( [![Go Report Card](https://goreportcard.com/badge/github.com/d3ta-go/ms-email-restapi)](https://goreportcard.com/report/github.com/d3ta-go/ms-email-restapi) )\n\nMicroService Interface/Presentation App: Email RestAPI\n\nAs a part of `Simple Implementation of Modular DDD Technical Architecture Patterns in Go`.\n\n## Diagram v 0.2.2-Modular\n\n![DDD-Technical-Architecture-Patterns-Golang-0.2.2-MS Email RESTAPI](docs/img/DDD-Technical-Architecture-Patterns-Golang-0.2.2-MS_Email_RestAPI.png)\n\n## Components\n\nA. Interface Layer (MicroService)\n\n1. Microservice: Email REST API - using Echo Framework [ [d3ta-go/ms-email-restapi](https://github.com/d3ta-go/ms-email-restapi) ]\n\nB. DDD Modules:\n\n1. Email - using DDD Layered Architecture (Contract, GORM, SMTP) [ [d3ta-go/ddd-mod-email](https://github.com/d3ta-go/ddd-mod-email) ]\n\nC. Common System Libraries [ [d3ta-go/system](https://github.com/d3ta-go/system) ]:\n\n1. Configuration - using yaml\n2. Identity \u0026 Securities - using JWT, Casbin (RBAC)\n3. Initializer\n4. Email Sender - using SMTP\n5. Handler\n6. Migrations\n7. Utils\n\nD. Databases\n\n1. MySQL (tested)\n2. PostgreSQL (untested)\n3. SQLServer (untested)\n4. SQLite3 (untested)\n\nE. Persistent Caches\n\n1. Session/Token/JWT Cache (Redis, File, DB, etc) [tested: Redis]\n\nF. Messaging [to-do]\n\nG. Logs [to-do]\n\n### Development\n\n1. Clone\n\n```shell\n$ git clone https://github.com/d3ta-go/ms-email-restapi.git\n```\n\n2. Setup\n\n```\na. copy `conf/config-sample.yaml` to `conf/config.yaml`\nb. copy `conf/data/test-data-sample.yaml` to `conf/data/test-data.yaml`\nc. setup your dependencies/requirements (e.g: database, redis, smtp, etc.)\n```\n\n3. Runing on Development Stage\n\n```shell\n$ cd ms-email-restapi\n$ go run main.go db migrate\n$ go run main.go server restapi\n```\n\n4. Build\n\n```shell\n$ cd ms-email-restapi\n$ go build\n$ ./ms-email-restapi db migrate\n$ ./ms-email-restapi server restapi\n```\n\n5. Distribution (binary)\n\nBinary distribution (OS/arch):\n\n- darwin/amd64\n- linux/amd64\n- linux/386\n- windows/amd64\n- windows/386\n\n```shell\n$ cd ms-email-restapi\n$ sh build.dist.sh\n$ platform: [choose from OS/arch list, for example: darwin/amd64]\n$ cd dist/[OS-arch]/\n$ ./ms-email-restapi db migrate\n$ ./ms-email-restapi server restapi\n```\n\n**RESTAPI (console):**\n\n![Microservice: Email REST API](docs/img/email-sample-ms-rest-api.png)\n\n**Swagger UI (openapis docs):**\n\nURL: http://localhost:20201/openapis/docs/index.html\n\n![Openapis: Email REST AIP](docs/img/email-sample-openapis-docs.png)\n\n**Related Domain/Repositories:**\n\n1. DDD Module: Email (Generic Subdomain) - [d3ta-go/ddd-mod-email](https://github.com/d3ta-go/ddd-mod-email)\n2. Common System Libraries - [d3ta-go/system](https://github.com/d3ta-go/system)\n3. Need JWT Authorization/Token from: Account (Generic Subdomain) Module/Account REST API - [d3ta-go/ms-account-restapi](https://github.com/d3ta-go/ms-account-restapi). `Please use shared redis server to store/retrieve JWT Token.`\n\n4. Email GraphQL API Microservice - [d3ta-go/ms-email-graphql-api](https://github.com/d3ta-go/ms-email-graphql-api)\n\n**Online Demo:\\***\n\n\u003e URL: **https://ms-email-d3tago-demo.mhs.web.id/openapis/docs/index.html**\n\nFor demo user account please grab it via: [**d3ta-go/ms-account-restapi**](https://github.com/d3ta-go/ms-account-restapi)\n\n**References:**\n\n1. [Book] Domain-Driven Design: Tackling Complexity in the Heart of Software 1st Edition (Eric Evans, 2004)\n\n2. [Book] Patterns, Principles, and Practices of Domain-Driven Design (Scott Millett \u0026 Nick Tune, 2015)\n\n**Team \u0026 Maintainer:**\n\n1. Muhammad Hari (https://www.linkedin.com/in/muharihar/)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3ta-go%2Fms-email-restapi","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fd3ta-go%2Fms-email-restapi","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fd3ta-go%2Fms-email-restapi/lists"}