Bir API Web Hizmeti ile Symfony yönlendirme

3 Cevap php

Ben web hizmeti API bitiriyorum. Şimdi rota değişiklikleri yapmak için nasıl düşünüyorum, bu yüzden yeni bir sürümünü yapmaya karar verirseniz biz ilk API kırmak istemem.

Şu anda:

url: /api/:action
param: { module: api, action: :action }
requirements:
  sf_format: (?:xml|json)

Ben düşündüm ne:

url: /api/v1/:module/:action
param: { module: api1, action: :action }
requirements:
  sf_format: (?:xml|json)

url: /api/v2/:module/:action
param: { module: api2, action: :action }
requirements:
  sf_format: (?:xml|json)

Bu kolay, ama mükemmel bir çözüm yolunun şu tür sahip olacaktır

# Automatically redirects to one module or another
url: /api/v:version/:module/:action
param: { module: api:version, action: :action }
requirements:
  sf_format: (?:xml|json)

bunu nasıl herhangi bir fikir? ne yapmamızı tavsiye edersiniz?

teşekkürler!

3 Cevap

Ben 2 yolları, üzerinde v1 ile bir ve v2 ile başka sahip yaklaşım daha iyi bir çözüm olduğunu düşünüyorum. Bu işi tekrarlamak gibi gelebilir, ama u düşünmeye başlarsanız, versiyonunda zorunda nedeni ilk saniyesi ile imcompatible olmasıdır. Yani, 2 mantıkları bir overkill olurdu karıştırın. U 3 sürümü var olabilir ne zaman gelecekte bazı günde düşünüyorsanız, nasıl mantık gibi görünecek düşünüyorsunuz?

Daha iyi bir çözüm, ayrı hem yapmak, bu yüzden u 1. sürümü için destek yapıyor durdurmak için gerekirse o sürüm 1 için dosyayı kaldırmak kadar kolay olacaktır. =)

Nasıl sadece eski yönlendirme kurallarını kullanın ve sonuna .xml1/.xml2/.json1/.json2 append hakkında? Bu şekilde mevcut modüllerini yeniden ve sadece yeni bir görünüm ("indexSuccess.xml1.php") oluşturmak gerekiyor olabilir.

Ya da yeni bir yönlendirme sınıf oluşturmak?

Muhtemelen gösterildiği gibi, özel bir rota koleksiyon oluşturmak here. Gerekir

Bu size herhangi bir yönlendirme ihtiyaçlarına uygun sağlayacak. Sen rota sınıf ve rota toplama sınıfa sürüm mantığı hareket olabilir.