我和在CF空间上运行的节点应用程序mainApp
,在这个节点应用程序中我得到其他应用程序name
(部署在同一空间中)和我我想从中获取应用程序 guid ,我该怎么做?
这就是我尝试的内容(我尝试在此空间中获取所有应用并从guid
搜索特定应用,但我获得了http 401 - unauthorized
,
任何想法如何从app app guid部署到CF的应用程序(假设我有应用程序名称)
- 醇>
有更好的方法来实现这一目标吗?
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);
});
})
答案 0 :(得分:1)
您必须首先获取访问令牌并将其传递到您在问题中的请求的标头中。 请参阅下面的示例,它将获取应用程序指南:
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);
});
});
答案 1 :(得分:0)
检查一下:
http://apidocs.cloudfoundry.org/272/apps/get_app_summary.html
使用httpclient API,您可以从任何语言获取应用程序名称。