Özel kaynak önbellek başvurusu

Bu makalede, önbellek özel kaynaklarını uygulayan uç noktaların gereksinimleri gözden geçirilecektir. Azure Özel Kaynak Sağlayıcıları hakkında bilginiz yoksa özel kaynak sağlayıcılarına genel bakışa bakın.

Önbellek kaynak uç noktası tanımlama

"Ara Sunucu, Önbellek" olarak belirtilerek routingType bir ara sunucu kaynağı oluşturulabilir.

Örnek özel kaynak sağlayıcısı:

{
  "properties": {
    "resourceTypes": [
      {
        "name": "myCustomResources",
        "routingType": "Proxy, Cache",
        "endpoint": "https://{endpointURL}/"
      }
    ]
  },
  "location": "eastus",
  "type": "Microsoft.CustomProviders/resourceProviders",
  "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}",
  "name": "{resourceProviderName}"
}

Ara sunucu kaynak uç noktası oluşturma

"Ara Sunucu, Önbellek" kaynak uç noktası uygulayan bir uç nokta, Azure'daki yeni API'nin isteğini ve yanıtını işlemelidir. Bu durumda resourceType, tek bir kaynakta CRUD gerçekleştirmek ve mevcut tüm kaynakları almak için , GETve DELETE için PUTyeni bir Azure kaynak GET API'si oluşturur.

Not

Azure API, , GETve istek yöntemlerini PUToluşturur, ancak önbellek uç noktasının yalnızca ve DELETE'yi işlemesi PUTDELETEgerekir. Uç noktanın da uygulamasını GETöneririz.

Özel kaynak oluşturma

Azure API gelen isteği:

PUT https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

{
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

Bu istek daha sonra şu şekilde uç noktaya iletilir:

PUT https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}

{
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

Ardından uç noktadan gelen yanıt müşteriye geri iletilir. Yanıt şu değeri döndürmelidir:

  • Geçerli bir JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".
  • Özel kaynak sağlayıcısı istek için , typeve id alanlarının üzerine yazarname.
  • Özel kaynak sağlayıcısı yalnızca önbellek uç noktası için nesnenin properties altındaki alanları döndürür.

Uç nokta yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

name, idve type alanları, özel kaynak sağlayıcısı tarafından özel kaynak için otomatik olarak oluşturulur.

Azure Özel Kaynak Sağlayıcısı yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "name": "{myCustomResourceName}",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
    "type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

Özel kaynağı kaldırma

Azure API gelen isteği:

Delete https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

Bu istek daha sonra şu şekilde uç noktaya iletilir:

Delete https://{endpointURL}/?api-version=2018-09-01-preview
Content-Type: application/json
X-MS-CustomProviders-RequestPath: /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}

Ardından uç noktadan gelen yanıt müşteriye geri iletilir. Yanıt şu değeri döndürmelidir:

  • Geçerli bir JSON nesne belgesi. Tüm diziler ve dizeler üst nesnenin altına yerleştirilmelidir.
  • Üst Content-Type bilgi "application/json; charset=utf-8".
  • Azure Özel Kaynak Sağlayıcısı yalnızca 200 düzeyli bir yanıt döndürülürse öğeyi önbelleğinden kaldırır. Kaynak mevcut olmasa bile uç nokta 204 döndürmelidir.

Uç nokta yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Azure Özel Kaynak Sağlayıcısı yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

Özel kaynak alma

Azure API gelen isteği:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

İstek uç noktaya iletilmeyecek .

Azure Özel Kaynak Sağlayıcısı yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "name": "{myCustomResourceName}",
    "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
    "type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
    "properties": {
        "myProperty1": "myPropertyValue1",
        "myProperty2": {
            "myProperty3" : "myPropertyValue3"
        }
    }
}

Tüm özel kaynakları listeleme

Azure API gelen isteği:

GET https://management.azure.com/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources?api-version=2018-09-01-preview
Authorization: Bearer eyJ0e...
Content-Type: application/json

İstek uç noktaya iletilmeyecek .

Azure Özel Kaynak Sağlayıcısı yanıtı:

HTTP/1.1 200 OK
Content-Type: application/json; charset=utf-8

{
    "value" : [
        {
            "name": "{myCustomResourceName}",
            "id": "/subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.CustomProviders/resourceProviders/{resourceProviderName}/myCustomResources/{myCustomResourceName}",
            "type": "Microsoft.CustomProviders/resourceProviders/myCustomResources",
            "properties": {
                "myProperty1": "myPropertyValue1",
                "myProperty2": {
                    "myProperty3" : "myPropertyValue3"
                }
            }
        }
    ]
}

Sonraki adımlar