REST API'de saklı yordamlar

Saklı yordamlar, Veri API oluşturucusunda (DAB) REST uç noktaları olarak gösterilebilir. Bu yaklaşım, basit tablolar veya görünümler tarafından işlenmeyen özel mantık, filtreleme, doğrulama veya hesaplanan sonuçlar içeren senaryolar için kullanışlıdır.

Konfigürasyon

Saklı yordamı kullanıma açmak için:

  • source.type seçeneğini "stored-procedure" olarak ayarlayın
  • source.object öğesini tam nitelikli yordam adına ayarlayın
  • Gerekirse, varsayılanlarıyla birlikte isteğe bağlı parameters tanımlayın
  • Ayarla rest.methods (örneğin, "GET", "POST") veya rest: false
  • "execute" eylemini kullanarak izin ver

CLI örneği

dab add GetCowrittenBooksByAuthor \
  --source dbo.stp_get_all_cowritten_books_by_author \
  --source.type "stored-procedure" \
  --parameters.name "searchType" \
  --parameters.required "false" \
  --parameters.default "default-value" \
  --parameters.description "The type of search to perform" \
  --permissions "anonymous:execute" \
  --rest.methods "get"

Yapılandırma örneği

"GetCowrittenBooksByAuthor": {
  "source": {
    "type": "stored-procedure",
    "object": "dbo.stp_get_all_cowritten_books_by_author",
    "parameters": [
      {
        "name": "searchType",
        "required": false,
        "default": "default-value",
        "description": "The type of search to perform"
      }
    ]
  },
  "rest": {
    "methods": [ "GET" ]
  },
  "permissions": [
    {
      "role": "anonymous",
      "actions": [ "execute" ]
    }
  ]
}

Uyarı

için sözlük biçimi parameters (örneğin, { "searchType": "default-value" }) DAB 2.0'da kullanım dışıdır. Önceki örnekte gösterilen dizi biçimini kullanın. Eski biçim geriye dönük uyumluluk için hala kabul edilir.

Tavsiye

Parametreler dizisi biçimi hakkında daha fazla bilgi için bkz. kaynak yapılandırması.

REST davranışı

  • Sadece GET ve POST destekler.
  • POST atlanırsa methods varsayılan olarak kullanılır
  • ile sorgu dizesi aracılığıyla parametreleri gönderir GET
  • Parametreleri JSON gövdesi aracılığıyla gönderir POST
  • Ayarlanmışsa "rest": false saklı yordam için REST'i devre dışı bırakır

Örnek istekler

GET /api/GetCowrittenBooksByAuthor?author=asimov

POST /api/GetCowrittenBooksByAuthor

{
  "author": "asimov"
}

Sınırlamalar

  • Yalnızca ilk sonuç kümesi döndürülür
  • Sayfalandırma, filtreleme ve sıralama desteklenmez
  • İlişkiler desteklenmiyor
  • Meta verileri gerektirir: sys.dm_exec_describe_first_result_set
  • Anahtar ile tek bir öğe döndürülemiyor.
  • Parametre düzeyinde yetkilendirme yok