Giter Site home page Giter Site logo

go-workspace's Introduction

go-workspace

golang programs from go.dev

Gorilla's mux package, requests can be matched based on URL host, path, path prefix, schemes, header and query values, and HTTP methods.

go get github.com/gorilla/mux

Mongo DB :

docker pull mongo
docker image inspect mongo
docker run -d --name mongo-on-docker -p 27888:27017 -e MONGO_INITDB_ROOT_USERNAME=mongoadmin -e MONGO_INITDB_ROOT_PASSWORD=secret mongo

#created folder to use for storing MongoDB data
sudo mkdir /var/dbdata
docker run -it -d -v /var/dbdata:/data/db -p 27017:27017 --name mongodb mongo
docker start mongodb
sudo docker exec -it mongodb bash

docker run --link mongo_db_name_container:mongo -p 8081:8081 -e ME_CONFIG_MONGODB_URL="mongodb://mongo:27017" mongo-express
docker run --link mongodb:mongo -p 8081:8081 -e ME_CONFIG_MONGODB_URL="mongodb://mongo:27017" mongo-express

After above DB setup, next time onwards use the following steps :
docker start mongodb
docker run --link mongodb:mongo -p 8081:8081 -e ME_CONFIG_MONGODB_URL="mongodb://mongo:27017" mongo-express
mongo ui -- http://localhost:8081

https://www.mongodb.com/blog/post/mongodb-go-driver-tutorial

mongodb://:@:/?authSource=admin mongodb://mongoadmin:secret@localhost:27888/?authSource=admin

Authentication :

Cookie based - session holds the auth info.Stateful One.
Token based - JWT , oAuth 2

1.oAuth 2 :
Step -1 : Register App with identity providers such Azure, Facebook,Google. it gives you a client ID and a client secret key
Step -2 : Once hit with above ID & Key, auth server provides Access Token

2.JWT :
Step -1 : After successful login , Access tokens are generated & signed securely.
Step -2 : Subsequent HTTP Request have Authorization Header - bearer token & gets validated at web server end.

Swagger :


1.swagger api in go

https://www.soberkoder.com/swagger-go-api-swaggo/


Code :

import ( "encoding/json" "log" "net/http" "strconv" "time"

_ "swaggo-orders-api/docs" // docs is generated by Swag CLI, you have to import it.

httpSwagger "github.com/swaggo/http-swagger"

"github.com/gorilla/mux"

)

func main() { router := mux.NewRouter() // Create router.HandleFunc("/orders", createOrder).Methods("POST") // Read router.HandleFunc("/orders/{orderId}", getOrder).Methods("GET") // Read-all router.HandleFunc("/orders", getOrders).Methods("GET") // Update router.HandleFunc("/orders/{orderId}", updateOrder).Methods("PUT") // Delete router.HandleFunc("/orders/{orderId}", deleteOrder).Methods("DELETE")

// Swagger
router.PathPrefix("/swagger").Handler(httpSwagger.WrapHandler)
log.Fatal(http.ListenAndServe(":8080", router))

}

http://localhost:8080/swagger/index.html


DOckerFile :


1.Docker File for golang : https://www.youtube.com/watch?v=USbPCBi_d4U

FROM
RUN
EXPOSE
ENTRYPOINT

1--Make Image : docker build -t gowebapi .
2--Run Image : docker run -p 8088:8080 -tid gowebapi

  1. https://www.youtube.com/watch?v=WPpw61vScIs

https://www.youtube.com/watch?v=kd-8mb6HfGA&list=PL3eAkoh7fypqUQUQPn-bXtfiYT_ZSVKmB

DockerFlie :
FROM golang:latest
LABEL maintainer="gophers"
WORKDIR /app
COPY go.mod .
COPY go.sum .
RUN go mod download
COPY . .
ENV PORT 7000
RUN go build
CMD ["./go-mux-api"]

1--Make Image : docker build -t gomuxapi .
2--Run Image : docker run -p 8000:7000 -tid gomuxapi

go-workspace's People

Contributors

jaipradhap avatar

Watchers

James Cloos avatar  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.