Cargando…

Building RESTful Web services with Go : Learn how to build powerful RESTful APIs with Golang that scale gracefully /

REST is an architectural style that tackles the challenges of building scalable web services and in today's connected world, APIs have taken a central role on the web. APIs provide the fabric through which systems interact, and REST has become synonymous with APIs. The depth, breadth, and ease...

Descripción completa

Detalles Bibliográficos
Clasificación:Libro Electrónico
Autor principal: Yellavula, Naren (Autor)
Otros Autores: Joshi, Anshul
Formato: Electrónico eBook
Idioma:Inglés
Publicado: Birmingham : Packt Publishing, 2017.
Temas:
Acceso en línea:Texto completo
Tabla de Contenidos:
  • Cover
  • Title Page
  • Copyright
  • Credits
  • About the Author
  • Acknowledgments
  • About the Reviewer
  • www.PacktPub.com
  • Customer Feedback
  • Table of Contents
  • Preface
  • Chapter 1: 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
  • Chapter 2: 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.
  • Chapter 3: 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
  • Chapter 4: 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
  • Chapter 5: 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
  • Chapter 6: 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
  • Chapter 7: 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.
  • Chapter 8: 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
  • Chapter 9: 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
  • Chapter 10: 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
  • Chapter 11: 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
  • Chapter 12: 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
  • Index.