Bonjour,
Je fais appel à une API REST dans une application ACCESS selon le tutoriel https://blog.goovy.io/api-rest-json-depuis-excel/
Pour cela, j'utilise les macro de vba-web http://vba-tools.github.io/VBA-Web/
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
42
43 Public Sub Interrogation() Dim client As New WebClient Dim Request As New WebRequest Dim Response As New WebResponse Dim Body As New Dictionary Dim Auth As New HttpBasicAuthenticator Dim sUsername As String Dim sPassword As String Dim sUrl As String Dim responseData As Dictionary Dim sBody As String EnableLogging = True sUrl = "XXXXXXXXXXXXXXX" sUsername = "XXXXX" sPassword = "X" Auth.Setup sUsername, sPassword Set client.Authenticator = Auth client.BaseUrl = sUrl Request.Method = WebMethod.HttpPost Request.RequestFormat = WebFormat.Json Request.ResponseFormat = WebFormat.Json 'Les paramètres doivent être sous forme de liste [] Body.Add "statut", Array("VAL") Set Request.Body = Body Set Response = client.Execute(Request) If (Response.StatusCode = Ok) Then Debug.Print "Success! " Set responseData = Response.Data ProcessResponse responseData Else Debug.Print "Failure: " & Response.Content End If End Sub
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 Private Sub ProcessResponse(dict As Dictionary) Dim Elem As Variant Dim Cle As Variant Debug.Print "Nombre d'élément " & dict("totalElements") For Each Cle In dict.Keys: Debug.Print "valeur de la clé : "; Cle: Next Cle For Each Elem In dict.Items: On Error Resume Next Debug.Print "valeur de l'item : "; Elem: Next Elem End Sub
La réponse JSON
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 { "content":[], "pageable":{"sort":{"sorted":false,"unsorted":true},"pageSize":200,"pageNumber":1,"offset":200,"paged":true,"unpaged":false}, "warnings":[], "totalPages":1, "totalElements":22, "first":false, "sort":{"sorted":false,"unsorted":true}, "last":true,"number":1, "numberOfElements":0, "size":200 }
J'ai l'erreur suivante "Erreur d'exécution 450 - Nombre d'arguments incorrect ou affectation de propriété incorrecte"
Cette erreur est levée uniquement sur les Items de type Array
- "content"
- "pageable"
- "warnings"
- "sort"
Avez-vous une idée pour éviter ce type d'erreur sachant que dans le champ "content" la réponse JSON finale retournera plusieurs éléments ( dont encore des array) ?
Je sais qu'il faut mixer les solution avec des Dictionary et des Collections mais je n'arrive pas à l'implémenter
JSON final :
D'avance merci beaucoup pour votre aide
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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128 { "content": [ { "id": "0bfc87c2-ea21-4332-b84a-4106c0b25344", "score": "107.82179", "format": "PDF", "titre": "test", "indice": "1", "dateInsertion": "04/02/2022 10:53:58", "dateModif": "08/02/2022 17:38:59", "nature": null, "version": "5", "validite": [ "04/02/2021;" ], "minValidite": "04/02/2021", "maxValidite": null, "ouvrage": [ { "cur": "A7C5C096E043A3681CAEC096", "type": "xx", "niveauHierarchique": null } ], "maille": [ { "cur": "768059E4704BAF4ED5F9DED991B/E346648D31114803BFB4AA2FC06B92EE", "type": null, "niveauHierarchique": null } ], "statut": "VAL", "statutLibelle": "Valide", "etat": "VIG", "typeDoc": "ddd", "typeDocLibelle": "sfsffdfsfsfsdfs", "typOuvrage": [ "xxxxxx" ], "entEqp": [], "opeMaint": [], "docLies": [], "proprio": null, "saisieLibre": [ "refEquipementTest", "test2" ], "identifiantGed": null, "dateRetention": null, "renditionPdf": true, "lastVersion": true }, { "id": "0c6f2a03-b0db-45ac-834f-cfa03bb9350a", "score": "107.82179", "format": "PDF", "titre": "RUF - PDJ - 3AP1 FG 72,5 - Ph : 3 - 31/01/2022", "indice": "1", "dateInsertion": "10/02/2022 09:20:41", "dateModif": "10/02/2022 09:20:41", "nature": null, "version": "1", "validite": [ "10/02/2022;" ], "minValidite": "10/02/2022", "maxValidite": null, "ouvrage": [ { "cur": "90F991C5CCF024E043A3681CAEF024", "type": "ttt", "niveauHierarchique": null } ], "maille": [ { "cur": "8D31114803BFB4AA2FC06B92EE", "type": null, "niveauHierarchique": null } ], "statut": "VAL", "statutLibelle": "Valide", "etat": "VIG", "typeDoc": "xx", "typeDocLibelle": "fsfsdsdfsdfsdf", "typOuvrage": [ "xxxxxxxx" ], "entEqp": [], "opeMaint": [], "docLies": [], "proprio": null, "saisieLibre": [ "5002258713" ], "identifiantGed": null, "dateRetention": null, "renditionPdf": true, "lastVersion": true } ], "pageable": { "sort": { "sorted": false, "unsorted": true }, "pageSize": 200, "pageNumber": 0, "offset": 0, "paged": true, "unpaged": false }, "warnings": [], "totalPages": 1, "totalElements": 21, "first": true, "sort": { "sorted": false, "unsorted": true }, "last": true, "number": 0, "numberOfElements": 21, "size": 200 }
Partager