Full-Stack Web Development with Go walks you through creating and developing a complete modern web service, from authn/authz, interop, server-side rendering, and databases, to modern frontend frameworks with Tailwind and Go-powered APIs, complete with step-by-step explanations of essential concepts, practical examples, and self-assessment questions. The book will begin by looking at how to structure the app and look at the relevant pieces, such as database and security, before integrating all the different parts together to build a complete web product.
Author(s): Nanik Tolaram, Nick Glynn
Edition: 1
Publisher: Packt Publishing
Year: 2023
Language: English
Pages: 302
City: Birmingham
Tags: Go; Vue.js; Web Development; Fullstack
Cover
Title Page
Copyright and Credits
Contributors
About the reviewers
Table of Contents
Preface
Part 1: Building a Golang Backend
Chapter 1: Building the Database and Model
Technical requirements
Installing Docker
Setting up Postgres
Designing the database
Installing sqlc
Using sqlc
Setting up the database
Generating CRUD with sqlc
Building the makefile
Summary
Chapter 2: Application Logging
Technical requirements
Exploring Go standard logging
Using golog
Local logging
Writing log messages to the logging server
Configuring multiple outputs
Summary
Chapter 3: Application Metrics and Tracing
Technical requirements
Understanding OpenTelemetry
The OpenTelemetry APIs and SDK
Tracing applications
Installing Jaeger
Integrating the Jaeger SDK
Integration with Jaeger
Adding metrics using Prometheus
Adding metrics using Prometheus
Running docker-compose
Summary
Part 2:Serving Web Content
Chapter 4: Serving and Embedding HTML Content
Technical requirements
Handling HTTP functions and Gorilla Mux
Hello, World with defaults
Building on the basics with Gorilla Mux
Rendering static content
Rendering dynamic content
Using Go embed to bundle your content
Summary
Chapter 5: Securing the Backend and Middleware
Technical requirements
Adding authentication
Creating our dummy user
Authenticating a user
Adding middleware
Basic middleware
Adding cookies and sessions
Cookies and session handling
Storing session information
Using Redis for a session
Summary
Chapter 6: Moving to API-First
Technical requirements
Structuring an application
Defining packages
Exposing our REST API
Cross-Origin Resource Sharing (CORS)
JSON middleware
Session middleware
Converting to and from JSON
Defining request model
Defining a response model
Reporting errors with JSON
Using JSONError
Using JSONMessage
Summary
Part 3:Single-Page Apps with Vue and Go
Chapter 7: Frontend Frameworks
Technical requirements
Server-side rendering versus single-page apps
Introducing React, Vue, and more
React
Svelte
Vue
Creating a Vue app
Application and components
Login page using Vue
Using Vite
Using Vue Router to move around
Routing the login page
Summary
Chapter 8: Frontend Libraries
Technical requirements
Understanding Vuetify
Setting up Vuetify
Using UI components
Understanding Buefy
Bulma sample
Setting up Buefy
UI components
Validating data entry with Vuelidate
Better input handling with Cleave.JS
Summary
Chapter 9: Tailwind, Middleware, and CORS
Technical requirements
Introducing Tailwind
Creating a new Tailwind and Vite project
Consuming your Golang APIs
CORS for secure applications
Creating Vue middleware
Summary
Chapter 10: Session Management
Technical requirements
Session management and JWTs
What’s a JWT?
(Re)introducing Vue Router
Navigation guards
Defaults and error pages
Summary
Part 4:Release and Deployment
Chapter 11: Feature Flags
Technical requirements
An introduction to feature flags
Feature flag configuration
Use cases for using feature flags
Installing the feature flag server
The high-level architecture of feature flags
Integration of the feature flag
Web application
Microservice integration
Summary
Chapter 12: Building Continuous Integration
Technical requirements
Importance of CI
Setting up GitHub
GitHub Actions
Publishing Docker images
Dockerfile
GitHub Packages
Publishing to GitHub Packages
Pulling from GitHub Packages
Summary
Chapter 13: Dockerizing an Application
Technical requirements
Installing Docker
Using Docker
Docker images
Running images as containers
Building and packaging images
Docker Compose
Summary
Chapter 14: Cloud Deployment
Technical requirements
AWS refresher
Amazon Elastic Compute Cloud
Virtual Private Cloud
Database storage
Elastic Container Service
AWS tools
Understanding and using Terraform
What is Terraform?
Installing Terraform
Terraform basic commands
The init command
The plan command
The destroy command
Coding in Terraform
Providers
Terraform examples
Pulling from GitHub Packages
AWS EC2 setup
Deploying to ECS with a load balancer
Summary
Index
Other Books You May Enjoy