Autodesk Forge API。如何获取项目的特定版本?
Autodesk Forge API. How to get specific version of item?
我要从 Autodesk Forge 获取特定版本的项目。我用这个 instruction 来做。有一个请求模板:
GET projects/:project_id/versions/:version_id/item
所以我的请求看起来很相似(为了简洁我删掉了一部分):
https://developer.api.autodesk.com/data/v1/projects/a.cGV ... TU2/versions/urn:adsk.wipprod:fs.file:vf.lTvo5GGBRzidiQ8Kredbaw?version=1/item
但是请求returns error 400 (Bad request).
当我以同样的方式得到物品时(当然是为此 template 使用的)一切正常。
我应该使用 this 模板还是其他?
我究竟做错了什么?
version_id
应该转义为 URL 安全形式,因为有一些保留的和不安全的关键字(即 :
、.
、?
和 =
)在此参数中。他们将使您对 Forge 服务的请求无效。 (Ref)
比如你的version_id是urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2
,那么你就得把它改成这样:
urn%3Aadsk.wipprod%3Afs.file%3Avf.b909RzMKR4mhc3O7UBY_8g%3Fversion%3D2
.
在JavaScript中,encodeURIComponent()
(Ref)函数可以帮你做这个转换。这是给您的示例:
encodeURIComponent('urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2')
如果您的代码是用 C# 编写的,您可以调用 Uri.EscapeDataString()
(Ref) 来归档相同的目标。
我要从 Autodesk Forge 获取特定版本的项目。我用这个 instruction 来做。有一个请求模板:
GET projects/:project_id/versions/:version_id/item
所以我的请求看起来很相似(为了简洁我删掉了一部分):
https://developer.api.autodesk.com/data/v1/projects/a.cGV ... TU2/versions/urn:adsk.wipprod:fs.file:vf.lTvo5GGBRzidiQ8Kredbaw?version=1/item
但是请求returns error 400 (Bad request).
当我以同样的方式得到物品时(当然是为此 template 使用的)一切正常。
我应该使用 this 模板还是其他? 我究竟做错了什么?
version_id
应该转义为 URL 安全形式,因为有一些保留的和不安全的关键字(即 :
、.
、?
和 =
)在此参数中。他们将使您对 Forge 服务的请求无效。 (Ref)
比如你的version_id是urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2
,那么你就得把它改成这样:
urn%3Aadsk.wipprod%3Afs.file%3Avf.b909RzMKR4mhc3O7UBY_8g%3Fversion%3D2
.
在JavaScript中,encodeURIComponent()
(Ref)函数可以帮你做这个转换。这是给您的示例:
encodeURIComponent('urn:adsk.wipprod:fs.file:vf.d34fdsg3g?version=2')
如果您的代码是用 C# 编写的,您可以调用 Uri.EscapeDataString()
(Ref) 来归档相同的目标。