Remove readme and examples from web repo
This commit is contained in:
parent
481ebe9d4f
commit
49dcc3d1bd
114
web/README.md
114
web/README.md
@ -1,114 +0,0 @@
|
||||
# Go Web
|
||||
|
||||
**Go Web** is a framework for micro service web development.
|
||||
|
||||
## Overview
|
||||
|
||||
Go Web provides a tiny HTTP web server library which leverages [go-micro](https://github.com/micro/go-micro) to create
|
||||
micro web services as first class citizens in a microservice world. It wraps go-micro to give you service discovery,
|
||||
heartbeating and the ability to create web apps as microservices.
|
||||
|
||||
## Features
|
||||
|
||||
- **Service Discovery** - Services are automatically registered in service discovery on startup. Go Web includes
|
||||
a http.Client with pre-initialised roundtripper which makes use of service discovery so you can use service names.
|
||||
|
||||
- **Heartbeating** - Go Web apps will periodically heartbeat with service discovery to provide liveness updates.
|
||||
In the event a service fails it will be removed from the registry after a pre-defined expiry time.
|
||||
|
||||
- **Custom Handlers** - Specify your own http router for handling requests. This allows you to maintain full
|
||||
control over how you want to route to internal handlers.
|
||||
|
||||
- **Static Serving** - Go Web automatically detects a local static `html` dir and serves files if no route handler
|
||||
is specified. A quick solution for those who want to write JS web apps as microservices.
|
||||
|
||||
## Getting Started
|
||||
|
||||
- [Dependencies](#dependencies)
|
||||
- [Usage](#usage)
|
||||
- [Set Handler](#set-handler)
|
||||
- [Call Service](#call-service)
|
||||
- [Static Files](#static-files)
|
||||
|
||||
## Dependencies
|
||||
|
||||
Go Web makes use of Go Micro which means it needs service discovery
|
||||
|
||||
See the [go-micro](https://github.com/micro/go-micro#service-discovery) for install instructions
|
||||
|
||||
For a quick start use consul
|
||||
|
||||
```
|
||||
# install
|
||||
brew install consul
|
||||
|
||||
# run
|
||||
consul agent -dev
|
||||
```
|
||||
|
||||
## Usage
|
||||
|
||||
```go
|
||||
service := web.NewService(
|
||||
web.Name("example.com"),
|
||||
)
|
||||
|
||||
service.HandleFunc("/foo", fooHandler)
|
||||
|
||||
if err := service.Init(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := service.Run(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
```
|
||||
|
||||
## Set Handler
|
||||
|
||||
You might have a preference for a HTTP handler, so use something else. This loses the ability to register endpoints in discovery
|
||||
but we'll fix that soon.
|
||||
|
||||
```go
|
||||
import "github.com/gorilla/mux"
|
||||
|
||||
r := mux.NewRouter()
|
||||
r.HandleFunc("/", indexHandler)
|
||||
r.HandleFunc("/objects/{object}", objectHandler)
|
||||
|
||||
service := web.NewService(
|
||||
web.Handler(r)
|
||||
)
|
||||
```
|
||||
|
||||
## Call Service
|
||||
|
||||
Go-web includes a http.Client with a custom http.RoundTripper that uses service discovery
|
||||
|
||||
```go
|
||||
c := service.Client()
|
||||
|
||||
rsp, err := c.Get("http://example.com/foo")
|
||||
```
|
||||
|
||||
This will lookup service discovery for the service `example.com` and route to one of the available nodes.
|
||||
|
||||
## Static Files
|
||||
|
||||
Go web was always meant as a way to register web apps where the majority of the code would be written in JS. To enable that by default, if no handler is registered on "/" and we find a local "html" directory then static files will be served.
|
||||
|
||||
You will see a log output like so.
|
||||
|
||||
```
|
||||
2019/05/12 14:55:47 Enabling static file serving from /tmp/foo/html
|
||||
```
|
||||
|
||||
If you want to set this path manually use the StaticDir option. If a relative path is specified we will use os.Getwd() and prefix this.
|
||||
|
||||
```
|
||||
service := web.NewService(
|
||||
web.Name("example.com"),
|
||||
web.StaticDir("/tmp/example.com/html"),
|
||||
)
|
||||
|
||||
```
|
@ -1,7 +0,0 @@
|
||||
# Examples
|
||||
|
||||
Name | Description
|
||||
--- | ---
|
||||
[Message](https://github.com/micro/message-web) | A simple text based messaging web app
|
||||
[Geo](https://github.com/micro/geo-web) | A geo location map demo
|
||||
|
@ -1,29 +0,0 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/micro/go-micro/web"
|
||||
)
|
||||
|
||||
func helloWorldHandler(w http.ResponseWriter, r *http.Request) {
|
||||
fmt.Fprint(w, `<html><body><h1>Hello World</h1></body></html>`)
|
||||
}
|
||||
|
||||
func main() {
|
||||
service := web.NewService(
|
||||
web.Name("helloworld"),
|
||||
)
|
||||
|
||||
service.HandleFunc("/", helloWorldHandler)
|
||||
|
||||
if err := service.Init(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
|
||||
if err := service.Run(); err != nil {
|
||||
log.Fatal(err)
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user