VBA Excel interroger une api

Bonjour à tous,

je voudrais depuis un fichier excel/vba interroger en API une application pour un récupérer une valeur et après mettre à jour une valeur dans cette application.

- Est-ce que c'est possible d’interroger en VBA une API? si oui quelle fonction VBA réalise cela ?

J'ai mon script (dans postman) qui interroge mon application avec

URL hxxps://xxxxxxx/restun/ExecuteSingleQuery

+ Le code (json) que j'envoi:

{
    "Query":
    {
        "FullText":null,
        "CategoryNo":49,
        "CaseDefinitionNo":null,
        "MaxRows": 0,
        "Mode":0,
        "RowBlockSize":100,
        "Conditions":[
            {
                "Condition": "89EFA38D-5C69-4D5F-BEA6-3891BE7BFE60",
                "FieldNoOrName":"1829"
                }

        ],
        "SelectedFieldsNoOrNames":
        [
            "1829"
        ]

    }
}

et j'ai mon résultat

{
    "QueryResult": {
        "CaseDefinitionNo": 0,
        "CategoryNo": 49,
        "ProcessNo": 0,
        "ResultRows": [
            {
                "AccessMask": {
                    "Value": 140737488156623
                },
                "DocNo": 5759261,
                "IndexValues": [
                    "89EFA38D-5C69-4D5F-BEA6-3891BE7BFE60"
                ],
                "Size": 24062,
                "VersionNo": 4,
                "Status": 0,
                "RoleAccessMask": {
                    "Value": 140737488156623
                }
            }
        ],

Merci d'avance pour vos conseils

guigui69

Bonjour,

j'avance sur code en vba.

je suis entrain de reconstituer le format Json qui sera envoyé en api rest:

 Set jsonObject = New Dictionary
jsonObject.Add "Query", New Collection
jsonObject("Query").Add New Dictionary
jsonObject("Query")(1).Add "FullText", Null
jsonObject("Query")(1).Add "CategoryNo", "49"
jsonObject("Query")(1).Add "CaseDefinitionNo", Null
jsonObject("Query")(1).Add "MaxRows", "0"
jsonObject("Query")(1).Add "Mode", "0"
jsonObject("Query")(1).Add "RowBlockSize", "100"

Set json_condition = New Dictionary
'json_condition.Add "Conditions3", New Collection
'json_condition(.Add New Dictionary
json_condition.Add "Condition", "89EFA38D-5C69-4D5F-BEA6-3891BE7BFE60"
json_condition.Add "FieldNoOrName", "1829"

jsonObject("Query")(1).Add "Conditions", Array(json_condition)

MsgBox (JsonConverter.ConvertToJson(jsonObject, 2))
ws.Cells(1, 1) = JsonConverter.ConvertToJson(jsonObject, 2)

Résultat:

{

  "Query": [

    {

      "FullText": null,

      "CategoryNo": "49",

      "CaseDefinitionNo": null,

      "MaxRows": "0",

      "Mode": "0",

      "RowBlockSize": "100",

      "Conditions": [

        {

          "Condition": "89EFA38D-5C69-4D5F-BEA6-3891BE7BFE60",

          "FieldNoOrName": "1829"

        }

      ]

    }

  ]

}

Quand je test dans postman, c'est le Crochet [] au niveau du Query qui pose probleme. (si je supprime cela fonctionne), mais je n'arrive pas avoir dans mon code VBA quelle modification je doit effectuer.

Pourriez-vous m'aiguiller?

guigui69

Bonjour razer (ou guigui),

EN guise d'exemple, je joins une application EXCEL faisant appel à un API. Dans le module 'MainModule' tu trouveras la procédure d'appel de l'API et le module de décryptage de la réponse JSON dont tu peux t'inspirer.

56joursferies.xlsm (59.98 Ko)

Merci,

j'ai regardé le document cela pratique pour la suite, mais je bloque sur le debut pour lui envoyer login et mdp (Méthode Basic) pour me connecter à API :(

Bonjour razer,

Aurais tu la documentation technique de l'API que tu veux utiliser ? Tu devrais y trouver tous les détails pour y accéder genre :

image
Rechercher des sujets similaires à "vba interroger api"