Browse Source

add readme for each package

Aneurin Barker Snook 11 tháng trước cách đây
mục cha
commit
480a5c816d
1 tập tin đã thay đổi với 44 bổ sung0 xóa
  1. 44 0
      README.md

+ 44 - 0
README.md

@@ -0,0 +1,44 @@
+# Go REST
+
+Some handy functions for developing JSON-based REST APIs. In particular, it simplifies reading HTTP request bodies, writing HTTP response bodies, and handling errors.
+
+## Error handling
+
+You can use `errors.Is()` to ascertain the type of errors thrown by validation functions, but for the most part, this isn't necessary because the write functions already do that.
+
+## Example
+
+```go
+package main
+
+import (
+	"errors"
+	"math/rand"
+	"net/http"
+
+	"github.com/annybs/go/rest"
+)
+
+type Handler struct{}
+
+func (*Handler) ServeHTTP(w http.ResponseWriter, req *http.Request) {
+	n := rand.Intn(3)
+	if n == 0 {
+		rest.WriteResponseJSON(w, http.StatusOK, map[string]string{"status": "OK"})
+	} else if n == 1 {
+		rest.WriteErrorJSON(w, errors.New("the original error message is added to data.error"))
+	} else {
+		rest.WriteErrorJSON(w, rest.ErrNotFound)
+	}
+}
+
+func main() {
+	http.ListenAndServe("localhost:8000", &Handler{})
+}
+```
+
+Open <http://localhost:8000> in your browser and refresh a bunch of times to see the different possible responses.
+
+## License
+
+See [LICENSE.md](../LICENSE.md)