14/04/2018 - SYMFONY
Bu çok basit bir post ama bazen farklı controller kullanarak, farklı URL modeli yaratmayı soranlar ile karşılaşıyorum. Aşağıdaki örnek nasıl yapılabileceğini gösteriyor. Örnek API, home ve dokümantasyon adreslerini birbirlerinden ayırıyor.
$ bin/console debug:router
------------------- -------- -------- ------ --------------------------
Name Method Scheme Host Path
------------------- -------- -------- ------ --------------------------
app_country_index GET ANY ANY /api/v1/countries
app_message_index POST ANY ANY /api/v1/messages/{type}
home GET ANY ANY /
documentation GET ANY ANY /documentation
------------------- -------- -------- ------ --------------------------
Bu /api/v1
URL adreslerinden sorumlu.
controllers:
resource: ../../src/Controller/
type: annotation
prefix: /api/v1
Bu diğer URL adreslerinden sorumlu.
home:
path: /
methods: [GET]
controller: App\Controller\HomeController::index
documentation:
path: /documentation
methods: [GET]
controller: App\Controller\DocumentationController::index
/**
* @Route("/countries")
*/
class CountryController
{
/**
* @Route("")
* @Method({"GET"})
*/
public function index()
{
}
}
/**
* @Route("/messages")
*/
class MessageController
{
/**
* @Route("/{type}")
* @Method({"POST"})
*/
public function index(Request $request, string $type)
{
}
}
class HomeController
{
public function index()
{
}
}
class DocumentationController
{
public function index()
{
}
}