[REST API] - Json de retour non valide
Bonjour,
Je suis entrain de faire une application JAVA avec une API Rest et je rencontre un petit problème.
Le JSON de mon API n'est pas valide...
Code:
1 2 3 4 5 6 7 8
| [
[
1,
"FRJEADUP",
"Jean",
"DUPOND"
]
] |
Je ne comprend pas vraiment pourquoi et comment cela se fait... si quelqu'un aurai une réponse ?
PS : J'utilise une architecture en oignon avec du CQRS et des ValueObjects.
Voici tout mon code :
CustomerController
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
| @CrossOrigin("*")
@RestController
public class CustomerController {
@Autowired
private CustomerRepository repository;
@ResponseBody
@GetMapping(path = "/GetCustomers", produces = "application/json")
public ResponseEntity<List<Customer>> getCustomers() {
var GetAllCustomers = new GetAllCustomers(repository);
return ResponseEntity.ok(GetAllCustomers.Do());
}
} |
ICustomerRepository
Code:
1 2 3 4 5 6
| public interface ICustomerRepository {
List<Customer> GetAll();
void Add(Customer customer);
} |
GetAllCustomers
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public class GetAllCustomers {
private ICustomerRepository _Repository;
public GetAllCustomers(ICustomerRepository Repository) {
_Repository = Repository;
}
public List<Customer> Do() {
return _Repository.GetAll();
}
} |
CustomerRepository
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
| @Repository
public class CustomerRepository implements ICustomerRepository {
@Autowired
EntityManager entityManager;
@SuppressWarnings("unchecked")
@Override
public List<Customer> GetAll() {
try {
String SQL = "SELECT ID, LOGIN, FOR_NAME, LAST_NAME FROM CUSTOMER";
Query query = entityManager.createNativeQuery(SQL);
List<Customer> customers = query.getResultList();
return customers;
} catch (NoResultException e) {
return null;
}
}
} |
Customer
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41
| private int _ID;
private Login _Login;
private ForName _ForName;
private LastName _LastName;
public Customer(Login Login, ForName ForName, LastName LastName) {
_Login = Login;
_ForName = ForName;
_LastName = LastName;
}
public Customer(int ID, Login Login, ForName ForName, LastName LastName) {
_ID = ID;
_Login = Login;
_ForName = ForName;
_LastName = LastName;
}
public int getID() {
return _ID;
}
public String getLogin() {
return _Login.getValue();
}
public String getForName() {
return _ForName.getValue();
}
public String getLastName() {
return _LastName.getValue();
}
@Override
public String toString() {
return getID() + " " + getLogin() + " " + getForName() + " " + getLastName();
} |
Login
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public class Login {
private String _Value;
public Login(String Value) {
_Value = Value;
}
public String getValue() {
return _Value;
}
} |
ForName
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public class ForName {
private String _Value;
public ForName(String Value) {
_Value = Value;
}
public String getValue() {
return _Value;
}
} |
LastName
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| public class LastName {
private String _Value;
public LastName(String Value) {
_Value = Value;
}
public String getValue() {
return _Value;
}
} |
Je sais qu'il y a beaucoup de classe et que ce n'est pas forcement simple à comprendre du premier regard..
En espérant que quelqu'un pourra m'aider.
WiZarD67