HTTP(S) Service Integer Response Behavior
Why is my int response a string?
Command:
curl -X POST "localhost:8013/schema.v1.Service/ResolveInt" -d '{"flagKey":"myIntFlag","context":{}}' -H "Content-Type: application/json"
Result:
{"value":"1","reason":"DEFAULT","variant":"one"}
When interacting directly with the flagD http(s) api and requesting an int the response type will be a string.
This behaviour is introduced by grpc-gateway, which uses proto3 json mapping to build the response object.
If a number value is required, and none of the provided SDK's can be used, then it is recommended to use the float64 endpoint instead:
Command:
curl -X POST "localhost:8013/schema.v1.Service/ResolveFloat" -d '{"flagKey":"myIntFlag","context":{}}' -H "Content-Type: application/json"
Result:
{"value":1.23,"reason":"DEFAULT","variant":"one"}