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...
Je ne comprend pas vraiment pourquoi et comment cela se fait... si quelqu'un aurai une réponse ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 [ [ 1, "FRJEADUP", "Jean", "DUPOND" ] ]
PS : J'utilise une architecture en oignon avec du CQRS et des ValueObjects.
Voici tout mon code :
CustomerController
ICustomerRepository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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()); } }
GetAllCustomers
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 public interface ICustomerRepository { List<Customer> GetAll(); void Add(Customer customer); }
CustomerRepository
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); } }
Customer
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } } }
Login
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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(); }
ForName
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
LastName
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
Je sais qu'il y a beaucoup de classe et que ce n'est pas forcement simple à comprendre du premier regard..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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; } }
En espérant que quelqu'un pourra m'aider.
WiZarD67
Partager