# groups the HttpServiceProxyRegistry knows about
group apikey  -> [ApiKeyClient]
group bearer  -> [SecureClient]
group flaky   -> [FlakyClient]
group github  -> [GitHubClient]
group oauth   -> [OAuthClient]
group posts   -> [ParamsClient, PostClient]
group resilient -> [ResilientClient]
PostClient bean is a JDK proxy: true
registry.getClient("posts", PostClient.class) is the injected bean: true

# CRUD against the stub (every call is a real HTTP request)
findAll() -> 3 posts
findById(1) -> Post[id=1, userId=1, title=First post, body=Body of the first post]
findByUser(2) -> [3]
findEntity(2) -> status 200 OK, Content-Type application/json
create(...) -> id 101
update(1, ...) -> title 'Updated Title'
delete(1) -> void, no exception

# argument kinds (ParamsClient)
@RequestHeader        -> upstream saw X-Correlation-Id=abc-123
@RequestParam(required=false), null -> 3 posts
@RequestParam(defaultValue="2")   -> posts [3]
URI argument          -> Second post

# what the stub actually received
GET /posts
GET /posts/1
GET /posts?userId=2
GET /posts/2
POST /posts
PUT /posts/1
DELETE /posts/1
GET /echo/headers
GET /posts
GET /posts?userId=2
GET /posts/2
