Skip to content

Java generator seems to generate an array of strings where an array of objects is expected as API return type #158

@rigolepe

Description

@rigolepe
# /rest/verkeersborden

/opstelling:
  description: Vraag een lijst van opstelling op
  post:
    queryParameters:
      binary:
        displayName: binary
        description: Met binaire data? Zonder is sneller.
        type: boolean
        required: false
        repeat: false
    body:
       application/vnd.awv.wdb-v3.0+json:
         type: |
            {
              "$schema" : "http://json-schema.org/draft-04/schema#",
              "title": "ids",
              "type" : "array",
              "items" : {
                "type" : "number"
              }
            }
    responses:
      200:
        body:
          application/vnd.awv.wdb-v3.0+json:
            type: |
              {
                "$schema" : "http://json-schema.org/draft-04/schema#",
                "title": "ids",
                "type" : "array",
                "items" : {
                  "type" : "opstelling"
                }
              }

generates:

package be.wegenenverkeer.api.verkeersborden.rest.verkeersborden.opstelling;

import be.wegenenverkeer.api.verkeersborden.dsl.javajackson.*;
import java.util.*;
import java.util.concurrent.CompletableFuture;
import java.io.*;

import java.util.List;
import com.fasterxml.jackson.databind.JsonNode;

public class OpstellingResource extends PlainSegment {

  public OpstellingResource() {}

  public OpstellingResource(RequestBuilder requestBuilder) {
    super("opstelling", requestBuilder);
  }

  public OpstellingResource(RequestBuilder requestBuilder, Boolean noPath) {
    super(requestBuilder);
  }

  public OpstellingResource addHeader(String key, String value) {
    OpstellingResource opstellingResource = new OpstellingResource(getRequestBuilder(), true);
    opstellingResource._requestBuilder.addHeader(key, value);
    return opstellingResource;
  }

  public OpstellingResource setHeader(String key, String value) {
    OpstellingResource opstellingResource = new OpstellingResource(getRequestBuilder(), true);
    opstellingResource._requestBuilder.setHeader(key, value);
    return opstellingResource;
  }

  public CompletableFuture<Response<List<String>>> post(String body, Boolean binary) {

    Map<String, HttpParam> params = new HashMap<String, HttpParam>();
    params.put("binary", new SimpleHttpParam(binary));

    return new TypeMethodSegment<String, List<String>>(
            Method.POST,
            body,
            true,
            params,
            null,
            null,
            null,
            null,
            "application/vnd.awv.wdb-v3.0+json",
            "application/vnd.awv.wdb-v3.0+json",
            this.getRequestBuilder(),
            "java.util.List<java.lang.Double>",
            "java.util.List<java.lang.String>")
        .call();
  }

  public CompletableFuture<Response<List<String>>> post(List<Double> body, Boolean binary) {

    Map<String, HttpParam> params = new HashMap<String, HttpParam>();
    params.put("binary", new SimpleHttpParam(binary));

    return new TypeMethodSegment<List<Double>, List<String>>(
            Method.POST,
            body,
            false,
            params,
            null,
            null,
            null,
            null,
            "application/vnd.awv.wdb-v3.0+json",
            "application/vnd.awv.wdb-v3.0+json",
            this.getRequestBuilder(),
            "java.util.List<java.lang.Double>",
            "java.util.List<java.lang.String>")
        .call();
  }
}

So, a List<String> instead of a List<Opstelling>. The Scala generation is correct.

Metadata

Metadata

Assignees

Labels

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions