Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Title Page Copyright
Building RESTful Web Services with Go
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
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion