Use the Dapr API
Run a Dapr sidecar and try out the state API
In this guide, you’ll simulate an application by running the sidecar and calling the API directly. After running Dapr using the Dapr CLI, you’ll:
- Save a state object.
- Read/get the state object.
- Delete the state object.
Learn more about the state building block and how it works in our concept docs.
Pre-requisites
Step 1: Run the Dapr sidecar
The dapr run command launches an application, together with a sidecar.
Launch a Dapr sidecar that will listen on port 3500 for a blank application named myapp
:
dapr run --app-id myapp --dapr-http-port 3500
Since no custom component folder was defined with the above command, Dapr uses the default component definitions created during the dapr init flow.
Step 2: Save state
Update the state with an object. The new state will look like this:
[
{
"key": "name",
"value": "Bruce Wayne"
}
]
Notice, that objects contained in the state each have a key
assigned with the value name
. You will use the key in the next step.
Save a new state object using the following command:
curl -X POST -H "Content-Type: application/json" -d '[{ "key": "name", "value": "Bruce Wayne"}]' http://localhost:3500/v1.0/state/statestore
Invoke-RestMethod -Method Post -ContentType 'application/json' -Body '[{ "key": "name", "value": "Bruce Wayne"}]' -Uri 'http://localhost:3500/v1.0/state/statestore'
Step 3: Get state
Retrieve the object you just stored in the state by using the state management API with the key name
. In the same terminal window, run the following command:
curl http://localhost:3500/v1.0/state/statestore/name
Invoke-RestMethod -Uri 'http://localhost:3500/v1.0/state/statestore/name'
Step 4: See how the state is stored in Redis
Look in the Redis container and verify Dapr is using it as a state store. Use the Redis CLI with the following command:
docker exec -it dapr_redis redis-cli
List the Redis keys to see how Dapr created a key value pair with the app-id you provided to dapr run
as the key’s prefix:
keys *
Output:1) "myapp||name"
View the state values by running:
hgetall "myapp||name"
Output:1) "data"
2) "\"Bruce Wayne\""
3) "version"
4) "1"
Exit the Redis CLI with:
exit
Step 5: Delete state
In the same terminal window, delete thename
state object from the state store.
curl -v -X DELETE -H "Content-Type: application/json" http://localhost:3500/v1.0/state/statestore/name
Invoke-RestMethod -Method Delete -ContentType 'application/json' -Uri 'http://localhost:3500/v1.0/state/statestore/name'
Next step: Dapr Quickstarts >>
Last modified May 18, 2022: Upmerge of v1.7 into v1.8 20220518 (#2446) (e1f6e886)