35 lines
		
	
	
		
			751 B
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			35 lines
		
	
	
		
			751 B
		
	
	
	
		
			Go
		
	
	
	
	
	
| // Package resolver resolves a http request to an endpoint
 | |
| package resolver
 | |
| 
 | |
| import (
 | |
| 	"errors"
 | |
| 	"net/http"
 | |
| )
 | |
| 
 | |
| var (
 | |
| 	// ErrNotFound returned when endpoint is not found
 | |
| 	ErrNotFound = errors.New("not found")
 | |
| 	// ErrInvalidPath returned on invalid path
 | |
| 	ErrInvalidPath = errors.New("invalid path")
 | |
| )
 | |
| 
 | |
| // Resolver resolves requests to endpoints
 | |
| type Resolver interface {
 | |
| 	Resolve(r *http.Request, opts ...ResolveOption) (*Endpoint, error)
 | |
| 	String() string
 | |
| }
 | |
| 
 | |
| // Endpoint is the endpoint for a http request
 | |
| type Endpoint struct {
 | |
| 	// Endpoint name e.g greeter
 | |
| 	Name string
 | |
| 	// HTTP Host e.g example.com
 | |
| 	Host string
 | |
| 	// HTTP Methods e.g GET, POST
 | |
| 	Method string
 | |
| 	// HTTP Path e.g /greeter.
 | |
| 	Path string
 | |
| 	// Domain endpoint exists within
 | |
| 	Domain string
 | |
| }
 |