从应用程序名称获取应用程序guid – 通过代码

我已经和节点应用程序mainApp在CF空间上运行,在这个节点应用程序即时获取其他应用程序的name (部署在同一空间),我想从它得到的应用程序GUID ,我怎么能做到这一点?

这是我试过(我试图让这个空间的所有应用程序,并从guidsearch特定的应用程序,但我得到了HTTP 401 - unauthorized

  1. 任何想法我怎么能从应用程序部署到CF应用程序的应用程序GUID(假设我有应用程序的名称)

  2. 有一个更好的方法来实现这一目标?

 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); }); }) 

您必须首先获取访问令牌,并将其传递到您的问题中的请求标题中。 看下面的例子将得到应用程序guid:

 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); }); }); 

检查这个:

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

使用httpclient API,您可以从任何语言获取应用程序名称。