Remove readme and examples from web repo
This commit is contained in:
		
							
								
								
									
										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) | ||||
| 	} | ||||
| } | ||||
		Reference in New Issue
	
	Block a user