Giter Club home page Giter Club logo

wpcodevo / golang-mongodb-api Goto Github PK

View Code? Open in Web Editor NEW
155.0 2.0 50.0 139 KB

In this article, you'll learn how to build a CRUD gRPC API server with Golang, MongoDB-Go-driver, and Docker-compose. You'll also build a gRPC client to interact with the gRPC API.

Home Page: https://codevoweb.com/crud-grpc-server-api-client-with-golang-and-mongodb

Makefile 0.35% Go 85.05% Shell 0.24% HTML 14.35%
crud crud-api gin go golang grpc grpc-client grpc-go grpc-server jwt

golang-mongodb-api's Introduction

Build gRPC Server API & Client with Golang and MongoDB

1. API with Golang + MongoDB + Redis + Gin Gonic: Project Setup

In this article, you'll learn how to set up a Golang application with MongoDB-Go-driver, Gin Gonic, and Go Redis. Later, we'll access both the Redis and MongoDB databases directly in VS Code using a MySQL VS Code extension.

API with Golang + MongoDB + Redis + Gin Gonic: Project Setup

Topics Covered

  • Setup Golang with MongoDB and Redis
  • Creating MongoDB and Redis Database with Docker-compose
  • Setup Environment Variables
  • How to Connect Golang App to Redis and MongoDB
  • Test the Golang API
  • How to Connect to MongoDB and Redis Servers in VS Code

Read the entire article here: https://codevoweb.com/api-golang-mongodb-gin-gonic-project-setup

2. Golang & MongoDB: JWT Authentication and Authorization

In this article, you'll learn how to implement RS256 JWT (JSON Web Token) Authentication and Authorization with Golang, Gin Gonic, MongoDB-Go-driver, and Docker-compose.

Golang & MongoDB: JWT Authentication and Authorization

Topics Covered

  • Golang & MongoDB JWT Authentication Overview
  • JWT Authentication Example with Golang and MongoDB
  • How to Generate Public and Private Keys
  • Update Environment Variables with Viper
  • Creating the User models with structs
  • Creating an Auth and User Interfaces
    • Authentication Interface
    • User Interface
  • Create utility functions to hash and verify password
  • Create services that interact with the database
    • Auth interface implementation
    • User interface implementation
  • Create a utility function to sign and verify JWT tokens
    • Create Json Web Token
    • Verify JSON Web Token
  • Create the authentication controllers
    • Signup user controller
    • Login user controller
    • Refresh access token controller
    • Logout user controller
  • Authentication Middleware Guard
  • Create the user controllers
  • Create API Routes with Gin
    • Auth Routes
    • User Routes
  • Add the Routes to the Gin Middleware Pipeline

Read the entire article here: https://codevoweb.com/golang-mongodb-jwt-authentication-authorization

3. API with Golang + MongoDB: Send HTML Emails with Gomail

In this article, you'll learn how to send HTML emails with Golang, Gomail, MongoDB-Go-Driver, Redis, and Docker-compose. Also, you'll learn how to generate HTML templates with the standard Golang html/template package.

API with Golang + MongoDB: Send HTML Emails with Gomail

Topics Covered

  • Send Emails with Golang, MongoDB, and Gomail Overview
  • Creating the HTML Email Templates with Golang
  • Create an SMTP Provider Account
  • Load and Validate Environment Variables Viper
  • Create a Utility Function to Send the Emails
  • Update the SignUp Controller

Read the entire article here: https://codevoweb.com/api-golang-mongodb-send-html-emails-gomail

4. API with Golang, Gin Gonic & MongoDB: Forget/Reset Password

In this article, you'll learn how to implement forget/reset password functionality with Golang, Gin Gonic, Gomail, MongoDB-Go-driver, Redis, and Docker-compose.

API with Golang, Gin Gonic & MongoDB: Forget/Reset Password

Topics Covered

  • Forget/Reset Password with Golang, Gin, and MongoDB
  • Create the MongoDB Model Structs
  • Create the HTML Email Templates with Golang
  • Define a Utility Function to Parse the HTML Templates
  • Create a Function to Send the HTML Emails
  • Add the Forgot Password Controller
  • Add the Reset Password Controller
  • Register the Gin API Routes

Read the entire article here: https://codevoweb.com/api-golang-gin-gonic-mongodb-forget-reset-password

5. Build Golang gRPC Server and Client: SignUp User & Verify Email

In this article, you'll learn how to create a gRPC server to register a user and verify their email address using Golang, MongoDB-Go-driver, Gomail, and Docker-compose.

Build Golang gRPC Server and Client: SignUp User & Verify Email

Topics Covered

  • gRPC Project setup in Golang
  • Create the gRPC Request and Response Messages
    • Define the gRPC User messages
    • Define the gRPC Request and Response Message to SignUp User
  • Create the gRPC Service Methods
  • Generate the gRPC client and server interfaces
  • Start the gRPC Server
  • Test the gRPC API Server with Golang Evans
  • Create the gRPC API Controllers
    • Register User gRPC Controller
    • Verify User gRPC Controller
  • Create the gRPC Client to Register a User

Read the entire article here: https://codevoweb.com/golang-grpc-server-and-client-signup-user-verify-email

6. Build Golang gRPC Server and Client: Access & Refresh Tokens

In this article, you'll learn how to implement JWT access and refresh tokens with gRPC using Golang, MongoDB-Go-driver, Gomail, Docker, and Docker-compose.

Build Golang gRPC Server and Client: Access & Refresh Tokens

Topics Covered

  • Create the gRPC Request and Response Messages
    • Create the gRPC User messages
    • Define the gRPC Request and Response Message to Login User
    • Update the Authentication gRPC Service
    • Create a gRPC User Service
  • Create the gRPC Controllers
  • Create the gRPC Servers
  • Register the gRPC Servers
  • Create the gRPC Clients in Golang
  • Connect the gRPC Client to the gRPC Server

Read the entire article here: https://codevoweb.com/golang-grpc-server-and-client-access-refresh-tokens

7. Build CRUD RESTful API Server with Golang, Gin, and MongoDB

In this article, you'll learn how to build a CRUD RESTful API server with Golang, Gin Gonic, MongoDB-Go-driver, Docker, and Docker-compose.

Build CRUD RESTful API Server with Golang, Gin, and MongoDB

Topics Covered

  • Golang, Gin Gonic, MongoDB CRUD RESTful API Overview
  • Create the Models with Structs
  • Create the Service Interface
  • Create Methods to Implement the Interface
    • Initialize the Service Struct
    • Define a Service to Create a Post
    • Define a Service to Update Post
    • Define a Service to Delete Post
    • Define a Service to Get Single Post
    • Define a Service to Get All Posts
  • Create Controllers to Perform the CRUD Operations
    • Initialize the Controller Struct
    • Define a Controller to Create a Post
    • Define a Controller to Update a Post
    • Define a Controller to Delete a Post
    • Define a Controller to Get a Single Post
    • Define a Controller to Get All Posts
  • Create the Routes for the Controllers
  • Initialize the Constructors and Start the Gin Server

Read the entire article here: https://codevoweb.com/crud-restful-api-server-with-golang-and-mongodb

8. Build CRUD gRPC Server API & Client with Golang and MongoDB

In this article, you'll learn how to build a CRUD gRPC API server with Golang, MongoDB-Go-driver, and Docker-compose. You'll also build a gRPC client to interact with the gRPC API.

Build CRUD gRPC Server API & Client with Golang and MongoDB

Topics Covered

  • Define the Models with Structs
  • Create the ProtoBuf Messages
  • Define the gRPC Service and RPC Methods
  • Define a Custom Service Interface
  • Create Methods to Implement the Service Interface
    • Create a Constructor to Implement the Service Interface
    • Create a new Post
    • Update a Post
    • Find a Post
    • Retrieve All Posts
    • Delete a Post
  • Define the gRPC Controllers
  • Register the gRPC Services and Start the gRPC Server
  • Test the gRPC API Server with Evans CLI
  • Create the gRPC API Handlers in Golang
    • CreatePost gRPC Handler
    • UpdatePost gRPC Service Handler
    • GetPost gRPC Service Handler
    • DeletePost gRPC Service Handler
    • GetPosts gRPC Service Handler
  • Testing the gRPC Services with Evans Cli
  • Create the gRPC Clients
    • gRPC Client to Create a Post
    • gRPC Client to Update a Post
    • gRPC Client to Get a Single Post
    • gRPC Client to Get All Posts
    • gRPC Client to Delete a Post
  • Register the gRPC Services

Read the entire article here: https://codevoweb.com/crud-grpc-server-api-client-with-golang-and-mongodb

golang-mongodb-api's People

Contributors

wpcodevo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar

golang-mongodb-api's Issues

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.