你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Features - Get Api Definition
使用 获取功能服务功能的说明。
API Get API Definition
是一个 HTTP GET
请求,它返回功能服务中每个 API 的功能的详细信息,包括请求类型 (GET
或 POST
) description
、 operationId
、 parameters
和 responses
。 开发人员可以使用它来了解 API,也可以通过开发工具来支持服务器和客户端的实现。
功能 API 是 Creator 的一部分,因此可以使用 Azure Maps API 和 SDK 基于专用室内地图数据开发应用程序。 功能 GET API 遵循 开放地理空间联盟 API - 功能 - 第 1 部分:核心更正 标准来查询 数据集。 数据集由多个特征集合组成,这些功能集合由通用架构定义的 特征 分组。
GET https://{geography}.atlas.microsoft.com/features/datasets/{datasetId}/api?api-version=2023-03-01-preview
URI 参数
名称 | 在 | 必需 | 类型 | 说明 |
---|---|---|---|---|
dataset
|
path | True |
string |
要从中查询的数据集的标识符。 |
geography
|
path | True |
string |
此参数指定 Azure Maps Creator 资源所在的位置。 有效值是 us 和 eu。 |
api-version
|
query | True |
string |
Azure Maps API 的版本号。 |
请求头
名称 | 必需 | 类型 | 说明 |
---|---|---|---|
x-ms-client-id |
string |
指定要与Microsoft Entra ID安全模型一起使用的帐户。 它表示Azure Maps帐户的唯一 ID,可以从Azure Maps管理平面帐户 API 检索。 若要在 Azure Maps 中使用Microsoft Entra ID安全性,请参阅以下文章以获取指导。 |
响应
名称 | 类型 | 说明 |
---|---|---|
200 OK |
正常 |
|
Other Status Codes |
发生了意外错误。 |
安全性
AADToken
这些是 Azure Active Directory OAuth2 流。 与 Azure 基于角色的访问控制配对后,它可用于控制对 Azure Maps REST API 的访问。 Azure 基于角色的访问控制用于指定对一个或多个Azure Maps资源帐户或子资源的访问权限。 可以通过内置角色或由一个或多个权限组成的自定义角色授予任何用户、组或服务主体访问权限,以Azure Maps REST API。
若要实现方案,建议查看 身份验证概念。 总之,此安全定义提供了一个解决方案,用于通过能够对特定 API 和作用域进行访问控制的对象对应用程序 () 建模。
备注
- 此安全定义需要使用
x-ms-client-id
标头来指示应用程序请求访问哪个Azure Maps资源。 这可以从 地图管理 API 获取。
Authorization URL
特定于 Azure 公有云实例。 主权云具有唯一的授权 URL 和 Azure Active Directory 配置。
* Azure 基于角色的访问控制是通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 从 Azure 管理平面配置的。
* 使用 Azure Maps Web SDK 可以针对多个用例基于配置设置应用程序。
- 目前,Azure Active Directory v1.0 或 v2.0 支持工作、学校和来宾,但不支持个人帐户。
类型:
oauth2
流向:
implicit
授权 URL:
https://login.microsoftonline.com/common/oauth2/authorize
作用域
名称 | 说明 |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
这是在通过 Azure 管理平面通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 创建Azure Maps资源时预配的共享密钥。
使用此密钥,任何应用程序都有权访问所有 REST API。 换句话说,这些密钥当前可以视为颁发它们的帐户的主密钥。
对于公开的应用程序,我们建议使用Azure Maps REST API 的服务器到服务器访问,其中可以安全地存储此密钥。
类型:
apiKey
在:
query
SAS Token
这是一个共享访问签名令牌,通过 Azure 管理平面通过 Azure 门户、PowerShell、CLI、Azure SDK 或 REST API 在Azure Maps资源上列出 SAS 操作创建。
使用此令牌,任何应用程序都有权使用 Azure 基于角色的访问控制进行访问,并精细控制特定令牌的过期、速率和区域 () 。 换句话说,SAS 令牌可用于允许应用程序以比共享密钥更安全的方式控制访问。
对于公开的应用程序,我们建议在 映射帐户资源 上配置允许的来源的特定列表,以限制呈现滥用,并定期续订 SAS 令牌。
类型:
apiKey
在:
header
示例
GetApiDefinition
示例请求
GET https://us.atlas.microsoft.com/features/datasets/218fda98-e638-0edf-5ef7-28491ff3bed4/api?api-version=2023-03-01-preview
示例响应
{
"openapi": "3.0.1",
"info": {
"title": "Azure Maps Web Feature Service",
"version": "2023-03-01-preview",
"description": "Azure Maps Web Feature REST APIs"
},
"paths": {
"/features/datasets/{datasetId}/": {
"get": {
"summary": "landing page of this API",
"description": "The landing page provides links to the API definition, the Conformance statements and the information about the feature data in this dataset.",
"operationId": "getLandingPage",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
}
],
"responses": {
"200": {
"description": "links to the API capabilities",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/root"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/api": {
"get": {
"summary": "the API definition for this service",
"operationId": "getApiDefinition",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
}
],
"responses": {
"200": {
"description": "the API definition"
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/conformance": {
"get": {
"summary": "information about standards that this API conforms to",
"description": "list all requirements classes specified in a standard (e.g., Features Part 1: Core) that the server conforms to",
"operationId": "getRequirementsClasses",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
}
],
"responses": {
"200": {
"description": "the URIs of all requirements classes supported by the server",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/req-classes"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/collections": {
"get": {
"summary": "describe the feature collections in the dataset",
"operationId": "describeCollections",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
}
],
"responses": {
"200": {
"description": "Information about the feature collections shared by this API.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/content"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/collections/{collectionId}": {
"get": {
"summary": "describe the {collectionId} feature collection",
"operationId": "describeCollection",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
}
],
"responses": {
"200": {
"description": "Information about the {collectionId} collection shared by this API.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/collectionInfo"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/collections/{collectionId}/definition": {
"get": {
"summary": "describe the {collectionId} feature collection",
"operationId": "definitionCollection",
"tags": [
"Capabilities"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
}
],
"responses": {
"200": {
"description": "Metadata about the {collectionId} collection shared by this API.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/collectionDefinition"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/collections/{collectionId}/items": {
"get": {
"summary": "retrieve features of feature collection {collectionId}",
"description": "Every feature in a dataset belongs to a collection. A dataset may consist of multiple feature collections. A feature collection is often a collection of features of a similar type, based on a common schema.",
"operationId": "getFeatures",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
},
{
"$ref": "#/responses/200/body/components/parameters/limit"
},
{
"$ref": "#/responses/200/body/components/parameters/bbox"
},
{
"$ref": "#/responses/200/body/components/parameters/time"
}
],
"responses": {
"200": {
"description": "Information about the feature collection plus the first features matching the selection parameters.",
"content": {
"application/geo+json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/featureCollectionGeoJSON"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
},
"post": {
"summary": "create feature for feature collection {collectionId}",
"description": "Create a single feature of unique id in the given collection.",
"operationId": "postFeatures",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
}
],
"responses": {
"201": {
"description": "Id of the created feature and its reference links.",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"id": {
"type": "string"
},
"links": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/link"
}
}
}
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
},
"/features/datasets/{datasetId}/collections/{collectionId}/items/{featureId}": {
"get": {
"summary": "retrieve a feature",
"operationId": "getFeature",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
},
{
"$ref": "#/responses/200/body/components/parameters/featureId"
}
],
"responses": {
"200": {
"description": "A feature.",
"content": {
"application/geo+json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/featureGeoJSON"
}
}
}
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
},
"delete": {
"summary": "delete a feature",
"operationId": "deleteFeature",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
},
{
"$ref": "#/responses/200/body/components/parameters/featureId"
}
],
"responses": {
"204": {
"description": "Feature deleted."
}
}
},
"put": {
"summary": "replace feature metadata",
"operationId": "putFeature",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
},
{
"$ref": "#/responses/200/body/components/parameters/featureId"
}
],
"responses": {
"204": {
"description": "Feature metadata replaced."
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
},
"patch": {
"summary": "update feature metadata",
"operationId": "patchFeature",
"tags": [
"Features"
],
"parameters": [
{
"$ref": "#/responses/200/body/components/parameters/datasetId"
},
{
"$ref": "#/responses/200/body/components/parameters/collectionId"
},
{
"$ref": "#/responses/200/body/components/parameters/featureId"
}
],
"responses": {
"200": {
"description": "Feature metadata updated."
},
"default": {
"description": "An error occurred.",
"content": {
"application/json": {
"schema": {
"$ref": "#/responses/200/body/components/schemas/exception"
}
}
}
}
}
}
}
},
"components": {
"parameters": {
"datasetId": {
"name": "datasetId",
"in": "path",
"description": "The identifier for the database to query from",
"required": true,
"schema": {
"type": "string"
}
},
"limit": {
"name": "limit",
"in": "query",
"description": "The optional limit parameter limits the number of items that are\npresented in the response document.\n\nOnly items are counted that are on the first level of the collection in\nthe response document. Nested objects contained within the explicitly\nrequested items shall not be counted.\n\n* Minimum = 1\n* Maximum = 500\n* Default = 10\n",
"required": false,
"schema": {
"type": "integer",
"minimum": 1,
"maximum": 500,
"default": 10
},
"style": "form",
"explode": false
},
"bbox": {
"name": "bbox",
"in": "query",
"description": "Only features that have a geometry that intersects the bounding box are selected. The bounding box is provided as four or six numbers, depending on whether the coordinate reference system includes a vertical axis (elevation or depth):\n* Lower left corner, coordinate axis 1 * Lower left corner, coordinate axis 2 * Lower left corner, coordinate axis 3 (optional) * Upper right corner, coordinate axis 1 * Upper right corner, coordinate axis 2 * Upper right corner, coordinate axis 3 (optional)\nThe coordinate reference system of the values is WGS84 longitude/latitude (http://www.opengis.net/def/crs/OGC/1.3/CRS84) unless a different coordinate reference system is specified in the parameter `bbox-crs`.\nFor WGS84 longitude/latitude the values are in most cases the sequence of minimum longitude, minimum latitude, maximum longitude and maximum latitude. However, in cases where the box spans the antimeridian the first value (west-most box edge) is larger than the third value (east-most box edge).\n",
"required": false,
"schema": {
"type": "array",
"minItems": 4,
"maxItems": 6,
"items": {
"type": "number"
}
},
"style": "form",
"explode": false
},
"time": {
"name": "time",
"in": "query",
"description": "Either a date-time or a period string that adheres to RFC 3339. Examples:\n* A date-time: \"2018-02-12T23:20:50Z\" * A period: \"2018-02-12T00:00:00Z/2018-03-18T12:31:12Z\" or \"2018-02-12T00:00:00Z/P1M6DT12H31M12S\"\nOnly features that have a temporal property that intersects the value of `time` are selected.",
"required": false,
"schema": {
"type": "string"
},
"style": "form",
"explode": false
},
"collectionId": {
"name": "collectionId",
"in": "path",
"required": true,
"description": "Identifier (name) of a specific collection",
"schema": {
"type": "string"
}
},
"featureId": {
"name": "featureId",
"in": "path",
"description": "Identifier of a specific feature",
"required": true,
"schema": {
"type": "string"
}
}
},
"schemas": {
"exception": {
"type": "object",
"required": [
"code"
],
"properties": {
"error": {
"type": "object",
"properties": {
"code": {
"type": "string"
},
"message": {
"type": "string"
}
}
}
}
},
"root": {
"type": "object",
"required": [
"links"
],
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/link"
},
"example": [
{
"href": "http://data.example.org/",
"rel": "self",
"type": "application/json",
"title": "Azure Maps Features"
},
{
"href": "http://data.example.org/api",
"rel": "service-desc",
"type": "application/openapi+json;version=3.0",
"title": "The API definition"
},
{
"href": "http://data.example.org/conformance",
"rel": "conformance",
"type": "application/json",
"title": "Conformance classes implemented by Features"
},
{
"href": "http://data.example.org/collections",
"rel": "data",
"type": "application/json",
"title": "information about the feature collections"
}
]
}
}
},
"req-classes": {
"type": "object",
"required": [
"conformsTo"
],
"properties": {
"conformsTo": {
"type": "array",
"items": {
"type": "string"
},
"example": [
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/core",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/oas3",
"http://www.opengis.net/spec/ogcapi-features-1/1.0/conf/geojson"
]
}
}
},
"link": {
"type": "object",
"required": [
"href"
],
"properties": {
"href": {
"type": "string"
},
"rel": {
"type": "string",
"example": "prev"
},
"type": {
"type": "string",
"example": "application/geo+json"
},
"hreflang": {
"type": "string",
"example": "en"
}
}
},
"content": {
"type": "object",
"required": [
"links",
"collections"
],
"properties": {
"links": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/link"
},
"example": [
{
"href": "http://data.example.org/collections.json",
"rel": "self",
"type": "application/json",
"title": "this document"
},
{
"href": "http://schemas.example.org/1.0/foobar.xsd",
"rel": "describedBy",
"type": "application/xml",
"title": "XML schema for Acme Corporation data"
}
]
},
"collections": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/collectionInfo"
}
}
}
},
"versionInfo": {
"type": "object",
"required": [
"version",
"revisionTimestamp"
],
"properties": {
"version": {
"description": "version number of the dataset",
"type": "string",
"example": "1.0.0"
},
"revisionTimestamp": {
"description": "timestamp of the revision",
"type": "string",
"example": "2020-01-02T03:04:05.6789012Z"
}
}
},
"collectionInfo": {
"type": "object",
"required": [
"name",
"links"
],
"properties": {
"id": {
"description": "identifier of the collection used, for example, in URIs",
"type": "string",
"example": "buildings"
},
"title": {
"description": "human readable title of the collection",
"type": "string",
"example": "Buildings"
},
"itemType": {
"description": "indicator about the type of the items in the collection",
"type": "string",
"example": "feature"
},
"description": {
"description": "a description of the features in the collection",
"type": "string",
"example": "Buildings in the city of Bonn."
},
"links": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/link"
},
"example": [
{
"href": "http://data.example.org/collections/buildings/items",
"rel": "item",
"type": "application/geo+json",
"title": "Buildings"
}
]
}
}
},
"collectionDefinition": {
"type": "object",
"required": [
"id",
"itemType",
"geometryType"
],
"properties": {
"id": {
"description": "identifier of the collection used, for example, in URIs",
"type": "string",
"example": "buildings"
},
"title": {
"description": "title of the collection used",
"type": "string",
"example": "buildings"
},
"itemType": {
"description": "indicator about the type of the items in the collection",
"type": "string",
"example": "feature"
},
"description": {
"description": "title of collection",
"type": "string",
"example": "Feature Class buildings"
},
"geometryType": {
"description": "type of geometry returned",
"type": "string",
"enum": [
"Point",
"MultiPoint",
"LineString",
"MultiLineString",
"Polygon",
"MultiPolygon",
"GeometryCollection"
]
},
"properties": {
"description": "attributes of the collection used",
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/definitionProperties"
}
}
}
},
"definitionProperties": {
"type": "object",
"required": [
"name",
"required",
"type"
],
"properties": {
"name": {
"description": "name of attribute",
"type": "string",
"example": "external_id"
},
"required": {
"description": "is attribute required",
"type": "boolean"
},
"type": {
"description": "type of attribute",
"type": "object"
}
}
},
"featureCollectionGeoJSON": {
"type": "object",
"required": [
"type",
"features"
],
"properties": {
"type": {
"type": "string",
"enum": [
"FeatureCollection"
]
},
"features": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/featureGeoJSON"
}
},
"links": {
"type": "array",
"items": {
"$ref": "#/responses/200/body/components/schemas/link"
}
},
"timeStamp": {
"type": "string",
"format": "dateTime"
},
"numberMatched": {
"type": "integer",
"minimum": 0
},
"numberReturned": {
"type": "integer",
"minimum": 0
}
}
},
"featureGeoJSON": {
"type": "object",
"required": [
"type",
"geometry",
"properties"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Feature"
]
},
"geometry": {
"$ref": "#/responses/200/body/components/schemas/geometryGeoJSON"
},
"properties": {
"type": "object",
"nullable": true
},
"id": {
"oneOf": [
{
"type": "string"
},
{
"type": "integer"
}
]
}
}
},
"geometryGeoJSON": {
"type": "object",
"required": [
"type"
],
"properties": {
"type": {
"type": "string",
"enum": [
"Point",
"MultiPoint",
"LineString",
"MultiLineString",
"Polygon",
"MultiPolygon",
"GeometryCollection"
]
}
}
}
}
},
"tags": [
{
"name": "Capabilities",
"description": "Essential characteristics of this API including information about the data."
},
{
"name": "Features",
"description": "Access to data (features)."
}
]
}
定义
名称 | 说明 |
---|---|
Api |
请求成功后响应以获取 API 定义。 |
Components |
OpenAPI 组件对象。 |
Error |
资源管理错误附加信息。 |
Error |
错误详细信息。 |
Error |
错误响应 |
Info |
OpenAPI 信息对象。 |
Tags |
OpenAPI 标记对象。 |
ApiDefinitionResult
请求成功后响应以获取 API 定义。
名称 | 类型 | 说明 |
---|---|---|
components |
OpenAPI 组件对象。 |
|
info |
OpenAPI 信息对象。 |
|
openapi |
string |
OpenAPI 版本。 |
paths |
object |
OpenAPI 路径对象。 |
tags |
Tags[] |
OpenAPI 标记对象。 |
Components
OpenAPI 组件对象。
名称 | 类型 | 说明 |
---|---|---|
parameters |
object |
OpenAPI 参数对象。 |
schemas |
object |
OpenAPI 架构对象。 |
ErrorAdditionalInfo
资源管理错误附加信息。
名称 | 类型 | 说明 |
---|---|---|
info |
object |
其他信息。 |
type |
string |
其他信息类型。 |
ErrorDetail
错误详细信息。
名称 | 类型 | 说明 |
---|---|---|
additionalInfo |
错误附加信息。 |
|
code |
string |
错误代码。 |
details |
错误详细信息。 |
|
message |
string |
错误消息。 |
target |
string |
错误目标。 |
ErrorResponse
错误响应
名称 | 类型 | 说明 |
---|---|---|
error |
错误对象。 |
Info
OpenAPI 信息对象。
名称 | 类型 | 说明 |
---|---|---|
description |
string |
API 的说明。 |
title |
string |
API 的标题。 |
version |
string |
API 的版本。 |
Tags
OpenAPI 标记对象。
名称 | 类型 | 说明 |
---|---|---|
description |
string |
标记的说明。 |
name |
string |
该标记的名称。 |