目錄(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
推薦閱讀
- 網絡協議工程
- 智能網聯汽車V2X與智能網聯設施I2X
- OpenLayers Cookbook
- 正在爆發的互聯網革命
- React:Cross-Platform Application Development with React Native
- 計算機網絡與通信(第2版)
- 電力物聯網工程技術原理與應用
- Yii Application Development Cookbook(Second Edition)
- 智慧光網絡:關鍵技術、應用實踐和未來演進
- Unity Artificial Intelligence Programming
- 新手易學:新手學淘寶開店
- TD-LTE無線網絡規劃與設計
- Android UI Design
- 工業互聯網創新實踐
- 深入理解Nginx:模塊開發與架構解析
- 物聯網與智慧農業
- 小型局域網組建
- 物聯網,So Easy!
- 物聯網與智慧廣電
- 通信系統實戰筆記:無處不在的信號處理
- 國外物聯網透視
- 移動應用開發技術
- 網絡故障現場處理實踐(第2版)
- Virtual Reality Blueprints
- Building Serverless Python Web Services with Zappa
- 企業“IPv6+”網絡規劃設計與演進
- 從云端到邊緣:邊緣計算的產業鏈與行業應用
- SpamAssassin: A practical guide to integration and configuration
- CCNP SWITCH (642-813) 認證考試指南
- 計算機網絡原理與應用(第2版)