aboutsummaryrefslogtreecommitdiff
path: root/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'README.md')
-rw-r--r--README.md52
1 files changed, 51 insertions, 1 deletions
diff --git a/README.md b/README.md
index ba31628..7540e8e 100644
--- a/README.md
+++ b/README.md
@@ -1,2 +1,52 @@
-# api
+# API
Generic api functions
+
+## Usage
+
+### api.Wrap(handler)
+
+Function Wrap wraps API handler and returns standard http.HandlerFunc. It encapsulate body parsing.
+
+#### Example
+
+```go
+package main
+
+import (
+ "context"
+ "fmt"
+ "log"
+ "net/http"
+
+ "github.com/gogeneric/api"
+)
+
+func main() {
+ h := &http.Server{Addr: "0.0.0.0:3000"}
+ mux := http.NewServeMux()
+ h.Handler = mux
+
+ // Here is magic!
+ mux.Handle("/hello", api.Wrap(handleHello))
+
+ if err := h.ListenAndServe(); err != http.ErrServerClosed {
+ log.Fatalln(err)
+ }
+}
+
+// Our API handler with custom request and response types
+func handleHello(ctx context.Context, req *helloRequest) (*helloResponse, error) {
+ return &helloResponse{Message: fmt.Sprintf("Hello, %s!", req.Name)}, nil
+}
+
+// Custom request type
+type helloRequest struct {
+ Name string `json:"name"`
+}
+
+// Custom response type
+type helloResponse struct {
+ Message string `json:"message"`
+}
+
+``` \ No newline at end of file