2017-09-19 5 views
1

J'ai et l'application de noeud mainApp qui en cours d'exécution sur l'espace CF, dans cette application de noeud im obtenir autre demande name (qui a été déployé dans le même espace) et je veux obtenir de il l'application guid, Comment je peux le faire?Télécharger l'application guid du nom de l'application - via le code

C'est ce que j'ai essayé (j'essaie d'obtenir toutes les applications dans cet espace et la recherche de l'application spécifique de la guid mais je suis http 401 - unauthorized,

  1. toute idée comment puis-je de l'application qui a été déployé à l'application CF app guid (suppose que j'ai le nom de l'application)

  2. Il y a une meilleure façon d'y parvenir?

getAllApps:() => { 

     return new Promise((resolve, reject) => { 

      rp({ 
       uri: 'https://' + CF_API + '/v2/apps', 
       json: true 

      }).then((data) => { 
       "use strict"; 
       console.log("apps data: " + data); 
       resolve(data); 
      }); 
     }) 

Répondre

1

Vous devez d'abord obtenir le jeton d'accès et le transmettre dans l'en-tête de la requête que vous avez dans votre question. Voir l'exemple ci-dessous qui obtiendra le guid d'application:

var request = require('request-promise'); 

request({ 
     "method":"POST", 
     "uri": "https://login.ng.bluemix.net/UAALoginServerWAR/oauth/token", 
     "json": true, 
     "headers": { 
     "content-type": "application/x-www-form-urlencoded", 
     "authorization": "Basic Y2Y6", 
     "accept": "application/json" 
     }, 
     "form" : { 
     "grant_type": "password", 
     "username": "<your Bluemix id>", 
     "password": "<your Bluemix password>" 
     } 
}).then(function(response) { 
     return response.access_token; 
}).then(function(token) { 
    return request({ 
    "method":"GET", 
    "uri": "https://api.ng.bluemix.net/v2/apps", 
    "qs": { 
     "q": "name:yourappname" 
    }, 
    "json": true, 
    "headers": { 
     "accept": "application/json", 
     "authorization": "bearer " + token 
    } 
    }).then(function (response) { 
    console.log(response.resources[0].metadata.guid); 
    }); 
}); 
+0

Ceci suppose que vous utilisez la région Bluemix US South. Vous devez ajuster le login et le serveur api si vous utilisez une autre région (comme https://login.eu-gb.bluemix.net pour Londres). –

0

Vérifiez ceci:

http://apidocs.cloudfoundry.org/272/apps/get_app_summary.html 

Avec l'API httpclient, vous pouvez obtenir les noms d'applications de toute langue.