目錄(189章)
倒序
- 封面
- 版權信息
- Credits
- About the Author
- Acknowledgments
- About the Reviewer
- www.PacktPub.com
- Why subscribe?
- Customer Feedback
- Preface
- What this book covers
- What you need for this book
- Who this book is for
- Conventions
- Reader feedback
- Customer support
- Downloading the example code
- Downloading the color images of this book
- Errata
- Piracy
- Questions
- Getting Started with REST API Development
- Types of web services
- REST API
- Characteristics of REST services
- REST verbs and status codes
- GET
- POST PUT and PATCH
- DELETE and OPTIONS
- Cross-Origin Resource Sharing (CORS)
- Types of status codes
- 2xx family (successful)
- 3xx family (redirection)
- 4xx family (client error)
- 5xx family (server error)
- Rise of REST API with Single Page Applications
- Old and new ways of data flow in SPA
- Why Go for REST API development?
- Setting up the project and running the development server
- Demystifying GOPATH
- Building our first service – finding the Roman numeral
- Breaking down the code
- Live reloading the application with supervisord and Gulp
- Monitoring your Go web server with supervisord
- Installing supervisord
- Using Gulp for creating auto code compiling and server reloading
- Understanding the gulpfile
- Summary
- Handling Routing for Our REST Services
- Getting the code
- Understanding Go's net/http package
- Running the code
- ServeMux a basic router in Go
- Running the code
- Adding multiple handlers using ServeMux
- Running the code
- Introducing httprouter a lightweight HTTP router
- Installation
- Program explanation
- Building the simple static file server in minutes
- Introducing Gorilla Mux a powerful HTTP router
- Installation
- Fundamentals of Gorilla Mux
- Reverse mapping URL
- Custom paths
- Path Prefix
- Strict Slash
- Encoded paths
- Query-based matching
- Host-based matching
- SQL injections in URLs and ways to avoid them
- Creating a basic API layout for URL shortening services
- Summary
- Working with Middleware and RPC
- Getting the code
- What is middleware?
- Creating a basic middleware
- Multiple middleware and chaining
- Painless middleware chaining with Alice
- Using Gorilla's Handlers middleware for Logging
- What is RPC?
- Creating an RPC server
- Creating an RPC client
- JSON RPC using Gorilla RPC
- Summary
- Simplifying RESTful Services with Popular Go Frameworks
- Getting the code
- go-restful a framework for REST API creation
- CRUD operations and SQLite3 basics
- Building a Metro Rail API with go-restful
- Design specification
- Creating database models
- Building RESTful APIs with the Gin framework
- Building a RESTful API with Revel.go
- Summary
- Working with MongoDB and Go to Create REST APIs
- Getting the code
- Introduction to MongoDB
- Installing MongoDB and using the shell
- Working with the Mongo shell
- Introducing mgo a MongoDB driver for Go
- RESTful API with Gorilla Mux and MongoDB
- Boosting the querying performance with indexing
- Designing an e-commerce data document model
- Summary
- Working with Protocol Buffers and GRPC
- Getting the code
- Introduction to protocol buffers
- Protocol buffer language
- Scalar values
- Enumerations and repeated fields
- Compiling a protocol buffer with protoc
- Introduction to GRPC
- Bidirectional streaming with GRPC
- Summary
- Working with PostgreSQL JSON and Go
- Getting the code
- Installing the PostgreSQL database
- Adding users and databases in PostgreSQL
- pq a pure PostgreSQL database driver for Go
- Implementing a URL shortening service using Postgres and pq
- Defining the Base62 algorithm
- Exploring the JSON store in PostgreSQL
- GORM a powerful ORM for Go
- Implementing the e-commerce REST API
- Summary
- Building a REST API Client in Go and Unit Testing
- Getting the code
- Plan for building a REST API client
- Basics for writing a command-line tool in Go
- CLI – a library for building beautiful clients
- Collecting command-line arguments in CLI
- grequests – a REST API package for Go
- API overview of grequests
- Getting comfortable with the GitHub REST API
- Creating a CLI tool as an API client for the GitHub REST API
- Using Redis for caching the API data
- Creating a unit testing tool for our URL shortening service
- Summary
- Scaling Our REST API Using Microservices
- Getting the code
- What are microservices?
- Monolith versus microservices
- Go Kit a package for building microservices
- Building a REST microservice with Go Kit
- Adding logging to your microservice
- Adding instrumentation to your microservice
- Summary
- Deploying Our REST services
- Getting the code
- Installing and configuring Nginx
- What is a proxy server?
- Important Nginx paths
- Using server blocks
- Creating a sample Go application and proxying it
- Load balancing with Nginx
- Rate limiting our REST API
- Securing our Nginx proxy server
- Monitoring our Go API server with Supervisord
- Installing Supervisord
- Summary
- Using an API Gateway to Monitor and Metricize REST API
- Getting the code
- Why is an API gateway required?
- Kong an open-source API gateway
- Introducing Docker
- Installing a Kong database and Kong
- Adding API to Kong
- API logging in Kong
- API authentication in Kong
- API rate limiting in Kong
- Kong CLI
- Other API gateways
- Summary
- Handling Authentication for Our REST Services
- Getting the code
- How authentication works
- Session-based authentication
- Introducing Postman a tool for testing REST API
- Persisting client sessions with Redis
- Introduction to JSON Web Tokens (JWT) and OAuth2
- JSON web token format
- Reserved claims
- Private claims
- Creating a JWT in Go
- Reading a JWT in Go
- OAuth 2 architecture and basics
- Authentication versus authorization
- Summary 更新時間:2021-07-02 20:14:35
推薦閱讀
- CorelDRAW X6 中文版圖形設計實戰從入門到精通
- 物聯網工程規劃技術
- 從區塊鏈到Web3:構建未來互聯網生態
- 網管員典藏書架:網絡管理與運維實戰寶典
- 計算機網絡安全實訓教程(第二版)
- SD-WAN架構與技術(第2版)
- Getting Started with WebRTC
- 通信簡史:從信鴿到6G+
- 射頻通信系統
- 網絡安全應急響應技術實戰指南
- 計算機網絡技術
- 區塊鏈社區運營手冊
- 網絡互聯技術(理論篇)
- Hands-On Cloud:Native Microservices with Jakarta EE
- Learning Dart
- 5G低功耗蜂窩物聯網開發與應用
- Alfresco Share
- 移動應用開發技術
- 一本書讀懂24種互聯網思維
- Recurrent Neural Networks with Python Quick Start Guide
- 中國互聯網發展報告(2010)
- 順”信”而為:信息化思維與領導力
- 網絡綜合布線技術(Vcom)(第2版)
- 軟件定義世界:云計算中心與智能運維的軟件定義解析
- 遠程醫療網絡多路徑數據安全傳輸
- Flutter技術入門與實戰
- MPLS技術構架
- Apache Solr 4 Cookbook
- 物聯網概論 第2版
- 實施Cisco統一通信VoIP和QoS(CVOICE)學習指南(第4版)