Skip to content

Latest commit

 

History

History

cookies

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Cookies Example

This example illustrates how to read and write HTTP cookies from a Goa service.

The session service exposes two methods: create_session and use_session. create_session writes a cookie to the HTTP response and use_session reads it back.

The available DSL functions used to manipulate HTTP cookies are:

The following shows the DSL used to write the cookie:

HTTP(func() {
	POST("/")
	Response(StatusOK, func() {
		Cookie("session_id:SID") // Return session ID in "SID" cookie
		CookieMaxAge(3600)       // Sessions last one hour
	})
})

The value of the HTTP cookie SID is read from the session_id field of the method result object.

The extract below shows the DSL used to read the cookie:

HTTP(func() {
	GET("/")
	Cookie("session_id:SID") // Load session ID from "SID" cookie
	Response(StatusOK)
})

Building and Running the example

Build the server and the client:

go build ./cmd/session && go build ./cmd/session-cli

Run the server:

./session --http-port 8080

Run the client to create a session:

./session-cli -v -url http://localhost:8080 session create-session --body '{"name":"foo"}' 

Run the client to use a session:

./session-cli -url http://localhost:8080 session use-session -session-id abcd