-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdoc.go
74 lines (51 loc) · 1.86 KB
/
doc.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
/*
Copyright 2019 Dmitry Kolesnikov, All Rights Reserved
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
/*
Package gouldian is Go combinator library for building HTTP services.
The library is a thin layer of purely functional abstractions to
building simple and declarative api implementations in the absence
of pattern matching for traditional and serverless applications.
Inspiration
The library is heavily inspired by Scala Finch https://github.com/finagle/finch.
Getting started
Here is minimal "Hello World!" example that matches any HTTP requests
to /hello endpoint.
package main
import (
µ "github.com/fogfish/gouldian"
"github.com/fogfish/gouldian/server/httpd"
"net/http"
)
func main() {
http.ListenAndServe(":8080",
httpd.Serve(hello()),
)
}
func hello() µ.Endpoint {
return µ.GET(
µ.URI(µ.Path("hello")),
func(ctx µ.Context) error {
return µ.Status.OK(µ.WithText("Hello World!"))
},
)
}
See examples folder for advanced use-case.
Next steps
↣ Study Endpoint type and its composition, see User Guide
↣ Check build-in collection of endpoints to deal with HTTP request.
See types: HTTP, APIGateway
↣ Endpoint always returns some `Output` that defines HTTP response.
There are three cases of output: HTTP Success, HTTP Failure and general
error. See Output, Issue types.
*/
package gouldian