mulesoft-labs / raml-java-client-generator

Raml Java Client Generator
Apache License 2.0
34 stars 34 forks source link

Support multiple responses #46

Open Condor70 opened 5 years ago

Condor70 commented 5 years ago

The current raml-java-client-generator only maps the lowest 2xx HTTP response in the RAML file and assumes this type is valid for all 2xx responses.

The following example will create a Java client that incorrectly maps the 201 response to a TypeA instead of a TypeB class:

types:
  typeA:
    type: object
    properties:
      fieldA: string
  typeB:
    type: object
    properties:
      fieldB: integer
/test:
  get:
    responses:
      200:
        body:
          type: typeA
      201:
        body:
          type: typeB

The same is true for non-2xx responses.

The following example will throw an execption for a 401 response, but you will need to create the TypeB class and add the mapping yourself:

types:
  typeA:
    type: object
    properties:
      fieldA: string
  typeB:
    type: object
    properties:
      fieldB: integer
/test:
  get:
    responses:
      200:
        body:
          type: typeA
      401:
        body:
          type: typeB

Can support for multiple responses be added to the generator?