万本电子书0元读

万本电子书0元读

顶部广告

Building RESTful Web services with Go电子书

售       价:¥

6人正在读 | 0人评论 9.8

作       者:Naren Yellavula

出  版  社:Packt Publishing

出版时间:2017-12-28

字       数:37.9万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Explore the necessary concepts of REST API development by building few real world services from scratch. About This Book ? Follow best practices and explore techniques such as clustering and caching to achieve a reactive, scalable web service ? Leverage the Buffalo Framework to quickly implement RESTful endpoints ? Learn to implement a client library for a RESTful web service using Go Who This Book Is For This book is intended for those who want to learn to build RESTful web services with a framework like Buffalo. To make best use of the code samples included in the book, you should have a basic knowledge of Go programming. What You Will Learn ? Create HTTP handler and introspect the Gorilla Mux router ? OAuth 2 implementation with Go ? Build RESTFul API with go-restful, Revel.Go and Buffalo Go ? Create REST API with MongoDB and Go ? Build a working client library and unit test for REST API ? Debug, test, and profile RESTful APIs with each of the frameworks ? Optimize and scale REST API using microservices In Detail 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 of use of Go, makes it a breeze for developers to work with it to build robust Web APIs. This book takes you through the design of RESTful web services and leverages a framework like Buffalo Go to implement these services. The book starts with a brief introduction to REST API development and how it transformed the modern web. You will learn how to handle routing and authentication of web services along with working with middleware for internal service. The book explains how to use Go frameworks to build RESTful web services and work with MongoDB to create REST API. You will learn how to integrate Postgres SQL and JSON with a Go web service and build a client library in Go for consuming REST API. You will learn how to scale APIs using the microservice architecture and deploy the REST APIs using Nginx as a proxy server. Finally you will learn how to metricize a REST API using an API Gateway. By the end of the book you will be proficient in building RESTful APIs in Go. Style and approach This book is a step-by-step, hands-on guide to designing and building RESTful web services.
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部