Я пытаюсь сопоставить POJO с JSON полученным ответом; однако, я продолжаю получать эту ошибку:
com.fasterxml.jackson.databind.exc.InvalidTypeIdException: Could not resolve type id 'order' as a subtype of `com.issbou.entity.OrdersList`: known type ids = [orders]
Ответ Json, который я получаю от сервера и который я пытаюсь сопоставить с моими классами POJO:
{
"orders": [
{
"id": 2039665099999,
"email": "isx@gmail.com"
},
{
"id": 2039665066666,
"email": "yzy@gmail.com"
}
]
}
Order : Java Класс сущности, представляющий один ордер:
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
@Setter
@Getter
public class Order {
@JsonProperty("id")
private long id;
@JsonProperty("email")
private String email;
}
OrderList : Java Класс сущности, который создает список одиночных ордеров:
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import com.fasterxml.jackson.annotation.JsonTypeName;
import lombok.Getter;
import lombok.Setter;
@JsonTypeName("orders")
@JsonTypeInfo(include = JsonTypeInfo.As.WRAPPER_OBJECT ,use = JsonTypeInfo.Id.NAME)
@Setter
@Getter
public class OrdersList {
private List<Order> singleOrder;
}
Класс обслуживания:
@Service
public class BasicAuth {
public ResponseEntity<OrdersList> orderDetails (@RequestBody OrdersList order){
String username = "username";
String password = "password";
HttpHeaders headers = new HttpHeaders();
headers.setBasicAuth(username, password);
// request url
String url = "https://test.myshopify.com/admin/orders.json";
RestTemplate restTemplate = new RestTemplate();
HttpEntity request = new HttpEntity(headers);
ResponseEntity<OrdersList> response = restTemplate.exchange(
url, HttpMethod.GET, request, OrdersList.class);
return response;
}
}
Контроллер покоя:
@RestController
public class Controller {
@Autowired
BasicAuth basicAuth;
@GetMapping("/lok")
@ResponseStatus(HttpStatus.FOUND)
public ResponseEntity<OrdersList> getBasicAut(OrdersList ordersList){
return basicAuth.orderDetails(ordersList);
}
}