Features - Get Api Definition
Используйте для получения описания возможностей службы "Компоненты".
API Get API Definition
— это HTTP-запросGET
, который возвращает сведения о возможностях каждого API в службе Features, включая тип запроса (GET
или POST
) , description
operationId
, parameters
и responses
. Он может использоваться разработчиками для понимания API или средствами разработки для поддержки реализации серверов и клиентов.
API функций является частью Creator, которая позволяет разрабатывать приложения на основе частных данных карты помещений с помощью API Azure Maps и пакета SDK. Функции API GET соответствуют стандарту Open Geospatial Consortium API — Features — Part 1: Core corrigendum standard для запроса наборов данных. Наборы данных состоят из нескольких коллекций признаков, которые представляют собой группу признаков , определенных общей схемой.
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 |
Номер версии API Azure Maps |
Заголовок запроса
Имя | Обязательно | Тип | Описание |
---|---|---|---|
x-ms-client-id |
string |
Указывает, какая учетная запись предназначена для использования в сочетании с моделью безопасности Microsoft Entra ID. Он представляет уникальный идентификатор учетной записи Azure Maps и может быть получен из API учетной записи уровня управления Azure Maps. Инструкции по использованию Microsoft Entra ID безопасности в Azure Maps см. в следующих статьях. |
Ответы
Имя | Тип | Описание |
---|---|---|
200 OK |
ОК |
|
Other Status Codes |
Произошла непредвиденная ошибка. |
Безопасность
AADToken
Это потоки OAuth2 Azure Active Directory . При связывании с управлением доступом на основе ролей 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 с помощью портал Azure, PowerShell, CLI, пакетов SDK для Azure или REST API.
* Использование веб-пакета SDK для Azure Maps позволяет настраивать приложение на основе конфигурации для нескольких вариантов использования.
- В настоящее время Azure Active Directory версии 1.0 или 2.0 поддерживает рабочие, учебные заведения и гостей, но не поддерживает личные учетные записи.
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Имя | Описание |
---|---|
https://atlas.microsoft.com/.default | https://atlas.microsoft.com/.default |
subscription-key
Это общий ключ, который подготавливается при создании ресурса Azure Maps через плоскость управления Azure с помощью портал Azure, PowerShell, CLI, пакетов SDK для Azure или REST API.
С помощью этого ключа любое приложение авторизовано для доступа ко всем REST API. Другими словами, в настоящее время они могут рассматриваться как master ключи к учетной записи, для которой они выданы.
Для общедоступных приложений мы рекомендуем использовать доступ между серверами Azure Maps REST API, где этот ключ можно безопасно хранить.
Type:
apiKey
In:
query
SAS Token
Это маркер подписанного URL-адреса, созданный с помощью операции List SAS для ресурса Azure Maps через плоскость управления Azure с помощью портал Azure, PowerShell, CLI, пакетов SDK для Azure или REST API.
С помощью этого маркера любое приложение авторизовано для доступа с помощью элементов управления доступом на основе ролей Azure и точного контроля срока действия, скорости и регионов, используемых для конкретного маркера. Другими словами, маркер SAS можно использовать, чтобы разрешить приложениям управлять доступом более безопасным способом, чем общий ключ.
Для общедоступных приложений мы рекомендуем настроить определенный список разрешенных источников в ресурсе учетной записи map , чтобы ограничить использование маркера SAS и регулярно обновлять маркер SAS.
Type:
apiKey
In:
header
Примеры
GetApiDefinition
Sample Request
GET https://us.atlas.microsoft.com/features/datasets/218fda98-e638-0edf-5ef7-28491ff3bed4/api?api-version=2023-03-01-preview
Sample Response
{
"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 |
Имя тега. |