Top Banner
RESTFUL APIS IN GO Frankfurter Entwicklertag 2018 Ralf Wirdemann Navigate : Space / Arrow Keys | - Menu | - Fullscreen | - Overview | - Blackout | - Speaker | - Help M F O B S ? Í 1
17

RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

Sep 23, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

RESTFUL APIS IN GOFrankfurter Entwicklertag 2018

Ralf Wirdemann

Navigate : Space / Arrow Keys | - Menu | - Fullscreen | - Overview | - Blackout | - Speaker | - HelpM F O B S ?

Í

1 / 17

Page 2: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

2 / 17

Page 3: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

GO 101

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

3 / 17

Page 4: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

STATICALLY TYPEDvar i int

s := "Hallo" // string

f := 3.142 // float

type struct Product {

Id int

Name string

}

p := Product{1, "Schuhe"}

foo(p)

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

4 / 17

Page 5: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

SMALL: ONLY 25 KEYWORDS

break default var interface select

case defer go map struct

chan else goto package switch

const fallthrough if range type

continue for import return func

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

5 / 17

Page 6: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

LOOK, I'M FUNCTIONALfunc bar(x int) bool {

return x == 42

}

func foo(f func (x int) bool) bool {

return f(42)

}

func main() {

foo(bar)

}

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

6 / 17

Page 7: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

WELL, I'M OO TOOtype Rectangle struct {

size int

border int

}

func (this Rectangle) draw() {

}

r := Rectangle{}

r.draw()

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

7 / 17

Page 8: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

CROSS PLATFORM-BINARIES

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

8 / 17

Page 9: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

STANDARD LIBRARY

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

9 / 17

Page 10: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

NET/HTTPPackage http provides HTTP client and server

implementations.

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

10 / 17

Page 11: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

http.Handle("/foo", fooHandler)

func fooHandler(w http.ResponseWriter, r *http.Request) {

fmt.Fprintf(w, "Hey, %q", html.EscapeString(r.URL.Path))

}

log.Fatal(http.ListenAndServe(":8080", nil))

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

11 / 17

Page 12: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

ENCODING/JSONPackage json implements encoding and decoding of

JSON as defined in RFC 4627.

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

12 / 17

Page 13: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

type Message struct {

Name string

Body string

}

m := Message{"Alice", "Hello"}

b, err := json.Marshal(m)

b == []byte(`{"Name":"Alice","Body":"Hello"}`)

var n Message

err := json.Unmarshal(b, &n)

n == Message{Name: "Alice", Body: "Hello"}

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

13 / 17

Page 14: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

REST 101Architecture Style

Resourcen

URIs

HTTP-Verbs

Representations

Hypermedia

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

14 / 17

Page 15: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

RESOURCE EXAMPLE

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

15 / 17

Page 16: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

16 / 17

Page 17: RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case defer go map struct chan else goto package switch const fallthrough if

GO PAIR PROGRAMMING

[email protected]

[ GitPitch @ bitbucket/rwirdemann/rest-apis-go-md/frankfurter-entwicklertag-2018 ]

Í

17 / 17