+ All Categories
Home > Documents > RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case...

RESTFUL APIS IN GO - Entwicklertag...SMALL: ONLY 25 KEYWORDS break default var interface select case...

Date post: 23-Sep-2020
Category:
Upload: others
View: 2 times
Download: 0 times
Share this document with a friend
17
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
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


Recommended