Skip to content

[csharp][generichost] Handle all responses#16635

Merged
wing328 merged 4 commits intoOpenAPITools:masterfrom
devhl-labs:response-refactor2
Oct 1, 2023
Merged

[csharp][generichost] Handle all responses#16635
wing328 merged 4 commits intoOpenAPITools:masterfrom
devhl-labs:response-refactor2

Conversation

@devhl-labs
Copy link
Contributor

@devhl-labs devhl-labs commented Sep 21, 2023

Handle all operation responses defined by the api. Enables you to deserialize any response which has a return object.

OperationIdApiResponse apiResponse = await apiClient.OperationIdAsync();

// simple boolean, users probably dont need, but it is here
apiResponse.IsOk();
apiResponse.IsForbidden();

// deserialize any of the response types
// if the response code does not match (api returned forbidden but user called Ok) then it just returns null
// if an error is more approriate, please let me know what error
var ok = apiResponse.Ok();
var forbidden = apiResponse.Forbidden();

// there are TryX methods
bool isOkAndCouldDeserialize= apiResponse.TryOk(out TType okResponse);

Also gives a generic interface to all responses with a return object so you may treat any operation with the same return type the same. For example, if operations A and B both have a 200 response and the same response data type, you can treat both responses as IOk<TType>

PR checklist

  • Read the contribution guidelines.
  • Pull Request title clearly describes the work in the pull request and Pull Request description provides details about how to validate the work. Missing information here may result in delayed response from the community.
  • Run the following to build the project and update samples:
    ./mvnw clean package 
    ./bin/generate-samples.sh ./bin/configs/*.yaml
    ./bin/utils/export_docs_generators.sh
    
    Commit all changed files.
    This is important, as CI jobs will verify all generator outputs of your HEAD commit as it would merge with master.
    These must match the expectations made by your contribution.
    You may regenerate an individual generator by passing the relevant config(s) as an argument to the script, for example ./bin/generate-samples.sh bin/configs/java*.
    For Windows users, please run the script in Git BASH.
  • File the PR against the correct branch: master (upcoming 7.1.0 minor release - breaking changes with fallbacks), 8.0.x (breaking changes without fallbacks)
  • If your PR is targeting a particular programming language, @mention the technical committee members, so they are more likely to review the pull request.

@devhl-labs devhl-labs marked this pull request as ready for review September 22, 2023 23:27
@wing328 wing328 merged commit bd1caf6 into OpenAPITools:master Oct 1, 2023
@wing328 wing328 added this to the 7.1.0 milestone Oct 1, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants