-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathmain.go
More file actions
60 lines (50 loc) · 1.69 KB
/
main.go
File metadata and controls
60 lines (50 loc) · 1.69 KB
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
package main
import (
"log"
"github.com/microplatform-io/platform"
"strconv"
"time"
)
var delay = platform.Getenv("DELAY", "0")
func main() {
service, err := platform.NewBasicService("micro-echo")
if err != nil {
log.Fatalf("failed to create service: %s", err)
}
service.AddHandler("/platform/create/echo", platform.HandlerFunc(func(responseSender platform.ResponseSender, request *platform.Request) {
d, err := strconv.Atoi(delay)
if err != nil {
d = 0
}
time.Sleep(time.Duration(d) * time.Second)
responseSender.Send(platform.GenerateResponse(request, &platform.Request{
Routing: platform.RouteToUri("resource:///platform/reply/echo"),
Context: request.Context,
Payload: request.Payload,
Completed: platform.Bool(true),
}))
}))
service.AddHandler("/platform/get/documentation", platform.HandlerFunc(func(responseSender platform.ResponseSender, request *platform.Request) {
responseSender.Send(platform.GenerateResponse(request, &platform.Request{
Routing: platform.RouteToUri("resource:///platform/reply/documentation"),
Payload: GetProtoBytes(&platform.Documentation{
ServiceRoutes: []*platform.ServiceRoute{
&platform.ServiceRoute{
Description: platform.String("Create Echo "),
Request: &platform.Route{Uri: platform.String("microservice:///platform/create/echo")},
Responses: []*platform.Route{
&platform.Route{Uri: platform.String("resource:///platform/reply/echo")},
},
Version: platform.String("1.0"),
},
},
}),
Completed: platform.Bool(true),
}))
}))
service.Run()
}
func GetProtoBytes(message platform.Message) []byte {
protoBytes, _ := platform.Marshal(message)
return protoBytes
}