目錄(189章)
倒序
- 封面
- 版權(quán)信息
- 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
推薦閱讀
- 物聯(lián)網(wǎng)(IoT)基礎(chǔ):網(wǎng)絡(luò)技術(shù)+協(xié)議+用例
- 物聯(lián)網(wǎng)之魂:物聯(lián)網(wǎng)協(xié)議與物聯(lián)網(wǎng)操作系統(tǒng)
- 物聯(lián)網(wǎng)時代
- 計(jì)算機(jī)網(wǎng)絡(luò)工程實(shí)用教程(第2版)
- 大話社交網(wǎng)絡(luò)
- Building RESTful Web services with Go
- 物聯(lián)網(wǎng)與智能家居
- 深入理解計(jì)算機(jī)網(wǎng)絡(luò)
- 商業(yè)的本質(zhì)和互聯(lián)網(wǎng)
- 小型局域網(wǎng)組建
- 智能物聯(lián)安防視頻技術(shù)基礎(chǔ)與應(yīng)用
- 物聯(lián)網(wǎng)商業(yè)設(shè)計(jì)與案例
- 路由與交換技術(shù)
- 網(wǎng)絡(luò)分析技術(shù)揭秘:原理、實(shí)踐與WinPcap深入解析
- 萬物互聯(lián):物聯(lián)網(wǎng)核心技術(shù)與安全
- 網(wǎng)絡(luò)編碼應(yīng)用
- 天基物聯(lián)網(wǎng)技術(shù)
- Exchange Server 2010 SP1/SP2管理實(shí)踐
- CTO說
- Developing Web Applications with Oracle ADF Essentials
- “IPv6+”網(wǎng)絡(luò)技術(shù)創(chuàng)新:構(gòu)筑數(shù)字經(jīng)濟(jì)發(fā)展基石
- Selenium 2 Testing Tools:Beginner’s Guide
- Intel FPGA數(shù)字信號處理設(shè)計(jì)(基礎(chǔ)版)
- 互聯(lián)網(wǎng)啟示錄:互聯(lián)網(wǎng)如何改變世界
- 軟件定義世界:云計(jì)算中心與智能運(yùn)維的軟件定義解析
- Mastering IOT
- 跬步千里:通信監(jiān)管的探索歷程
- Laravel Starter
- 物聯(lián)網(wǎng)關(guān)鍵技術(shù)
- 大型網(wǎng)站運(yùn)維:從系統(tǒng)管理到SRE