我可以使用 ArcGIS REST-API "applyEdits" 作为经过身份验证的用户更新要素层吗?
Can I use ArcGIS REST-API "applyEdits" to update Feature-Layer as an authenticated user?
我正在使用 nodeJS 通过 REST API 编辑我的要素层。我的意图是:
- 使用 Firebase Cloud-Functions 更新我的图层
- 公开分享我的图层
- 但要让未经授权的用户无法编辑我的图层
- 我想使用我的 API-密钥进行身份验证。
我的问题: 如果我将特征定义编辑为 "capabilities" : "Create, Update, Delete"
,如前所述 here,那么任何未经授权的用户都可以编辑我的图层,而如果我不,我得到:
[
'This operation is not supported.',
'Unable to add the features.',
'This operation is not supported.'
]
身份验证已取消 in the documentation。
我的代码:
require("cross-fetch/polyfill");
require("isomorphic-form-data");
const featureLayer = require('@esri/arcgis-rest-feature-layer');
const auth = require('@esri/arcgis-rest-auth');
const apiKey = new auth.ApiKey({key: 'some key...'});
featureLayer.applyEdits({
url: "https://services3.arcgis.com/someID/arcgis/rest/services/someName/FeatureServer/0",
adds: [{
geometry: { x: 120, y: 45 },
attributes: { indexCity: "alive" }
}],
authentication: apiKey
})
.then(response => {
console.log(response)
})
.catch(err => console.log(err.response.error.details));
我 运行 我的代码在终端中使用 node example.js
。
如何将 appleEdits 定义为只为我作为经过身份验证的用户?
一种选择是对私有要素图层(可编辑)进行编辑,然后拥有该要素图层的 public(不可编辑)视图。
我正在使用 nodeJS 通过 REST API 编辑我的要素层。我的意图是:
- 使用 Firebase Cloud-Functions 更新我的图层
- 公开分享我的图层
- 但要让未经授权的用户无法编辑我的图层
- 我想使用我的 API-密钥进行身份验证。
我的问题: 如果我将特征定义编辑为 "capabilities" : "Create, Update, Delete"
,如前所述 here,那么任何未经授权的用户都可以编辑我的图层,而如果我不,我得到:
[ 'This operation is not supported.', 'Unable to add the features.', 'This operation is not supported.' ]
身份验证已取消 in the documentation。
我的代码:
require("cross-fetch/polyfill");
require("isomorphic-form-data");
const featureLayer = require('@esri/arcgis-rest-feature-layer');
const auth = require('@esri/arcgis-rest-auth');
const apiKey = new auth.ApiKey({key: 'some key...'});
featureLayer.applyEdits({
url: "https://services3.arcgis.com/someID/arcgis/rest/services/someName/FeatureServer/0",
adds: [{
geometry: { x: 120, y: 45 },
attributes: { indexCity: "alive" }
}],
authentication: apiKey
})
.then(response => {
console.log(response)
})
.catch(err => console.log(err.response.error.details));
我 运行 我的代码在终端中使用 node example.js
。
如何将 appleEdits 定义为只为我作为经过身份验证的用户?
一种选择是对私有要素图层(可编辑)进行编辑,然后拥有该要素图层的 public(不可编辑)视图。