Skip to main content

UrlTemplates Yapılandırması

vNext platformu bir API gateway arkasında deploy ederken, Hateoas tarzı response linkleri için özel URL şablonları yapılandırabilirsiniz. Bu, API response'larında dönen instance URL'lerinin gateway yönlendirme yapılandırmanızla eşleşmesini sağlar.

Yapılandırma

appsettings.json dosyanıza UrlTemplates bölümünü ekleyin:

{
"UrlTemplates": {
"Start": "/api/{0}/workflows/{1}/instances/start",
"Transition": "/api/{0}/workflows/{1}/instances/{2}/transitions/{3}",
"FunctionList": "/api/{0}/workflows/{1}/functions/{2}",
"InstanceList": "/api/{0}/workflows/{1}/instances",
"Instance": "/api/{0}/workflows/{1}/instances/{2}",
"InstanceHistory": "/api/{0}/workflows/{1}/instances/{2}/transitions",
"Data": "/api/{0}/workflows/{1}/instances/{2}/functions/data",
"View": "/api/{0}/workflows/{1}/instances/{2}/functions/view",
"Schema": "/api/{0}/workflows/{1}/instances/{2}/functions/schema?transitionKey={3}"
}
}

Şablon Parametreleri

Her şablon, çalışma zamanında değiştirilen konumsal parametreler kullanır:

ParametreAçıklamaÖrnek
{0}Domainecommerce
{1}Workflow/Flow adıpayment-processing
{2}Instance ID18075ad5-e5b2-4437-b884-21d733339113
{3}Transition key veya bağlama özgü parametreapprove, reject

Şablon Açıklamaları

ŞablonAmaçOluşturulan URL Örneği
StartYeni instance başlatma endpoint'i/api/ecommerce/workflows/payment-processing/instances/start
TransitionInstance üzerinde transition tetikleme/api/ecommerce/workflows/payment-processing/instances/abc-123/transitions/approve
FunctionListHATEOAS fonksiyon keşfi şablonu (+: key ile GET .../workflows/{workflow}/functions/{function} kaldırıldıInstanceList ve instance kapsamlı Data / View / State kullanın)/api/ecommerce/workflows/payment-processing/functions/view
InstanceListWorkflow instance'larını listeleme/api/ecommerce/workflows/payment-processing/instances
InstanceBelirli bir instance getirme/api/ecommerce/workflows/payment-processing/instances/abc-123
InstanceHistoryInstance transition geçmişi/api/ecommerce/workflows/payment-processing/instances/abc-123/transitions
DataInstance verisi getirme/api/ecommerce/workflows/payment-processing/instances/abc-123/functions/data
ViewInstance görünümü getirme/api/ecommerce/workflows/payment-processing/instances/abc-123/functions/view
SchemaTransition şeması getirme/api/ecommerce/workflows/payment-processing/instances/abc-123/functions/schema?transitionKey=approve

Kullanım Senaryoları

Senaryo 1: Path Prefix'li Gateway

Gateway'iniz vNext API'yi belirli bir path üzerinden yönlendiriyorsa:

{
"UrlTemplates": {
"Start": "/vnext-api/v1/{0}/workflows/{1}/instances/start",
"Instance": "/vnext-api/v1/{0}/workflows/{1}/instances/{2}"
}
}

Senaryo 2: Farklı Domain Yapısı

Gateway'iniz route'ları farklı organize ediyorsa:

{
"UrlTemplates": {
"Start": "/domains/{0}/flows/{1}/start",
"Transition": "/domains/{0}/flows/{1}/instances/{2}/execute/{3}"
}
}

Senaryo 3: Subdomain Tabanlı Yönlendirme

Domain'ler gateway seviyesinde subdomain'lere eşleniyorsa:

{
"UrlTemplates": {
"Start": "/api/workflows/{1}/instances/start",
"Instance": "/api/workflows/{1}/instances/{2}"
}
}

Not: Gateway'iniz domain yönlendirmesini subdomain'ler üzerinden yapıyorsa, domain parametresi ({0}) şablonlardan çıkarılabilir.

Faydaları

  • Çapraz Domain Yönlendirme: Tek bir gateway arkasında birden fazla domain desteği
  • İstemci Basitliği: İstemciler URL manipülasyonu yapmadan Hateoas linklerini takip edebilir
  • Gateway Esnekliği: Herhangi bir gateway yönlendirme yapılandırmasına uyum
  • API Versiyonlama: Hateoas kullanan istemcileri bozmadan URL yapısı değişiklikleri

Varsayılan Davranış

UrlTemplates yapılandırılmazsa, platform standart vNext API yapısıyla eşleşen varsayılan şablonları kullanır:

/api/{domain}/workflows/{workflow}/instances/...