- 使用 Golang 的框架 gorilla/mux framework
- 使用 RS256 來產生 keypair, 透過 JWT 進行認證
- 使用 mock, 來達成 api unit test
- 使用 swagger 來產生 API 文件
- 使用 postman/newman 自動化測試 APIs
- Serivce securities
- HTTPS
- CSRF
- JWT Authorization
- XSS protection
- HSTS Protection
- Forbidden to show nginx's version
- SQL injection
- golang 1.17.11
- gorilla/mux, v1.8.0
- gorm, v1.21.11
- postman, collection v2.1, newman, 5.3.2
- Docker version 20.10.6, build 370c289
- docker-compose version 1.29.1, build c34c88b2
go test ./app/handler/ -v -cover
go test ./app/handler/ -coverprofile=cover.out && go tool cover -html=cover.out
- 產生 JWT 用於驗證的 RS256 keypair, 在本地端,
make key
- If cloud deploy, don't use it, load key from cloud storage, ex:
AWS Secret Manager
,AWS Parameter Store
- If cloud deploy, don't use it, load key from cloud storage, ex:
docker-compose up -d && docker logs -f app
- 執行本地 API service
- Run the client,
cd websocket_client && go run main.go
- 執行 api signin, 得到通知
- 執行本地 API service
make test
- result 可整合 aws codebuild 的 report
- swagger info
swagger generate spec -w ./swaggerdoc -o ./swagger.json
- 產生文件網站:
swagger serve swagger.json
swagger serve -F swagger swagger.json