Сейчас я использую FOSRestBundle для создания REST API в моем приложении Symfony. На данный момент идея состоит в том, чтобы перечислить некоторые места (гостиницы, рестораны...), мне удалось настроить автоматические маршруты с помощью FOSRestBundle, например:
/api/locations , /api/locations/{id} , /api/locations/{name}/detail
с этим контроллером:
class LocationController extends FOSRestController implements ClassResourceInterface
{
/**
* GET /locations
*
* @return Array
*
*/
public function cgetAction()
{
$locations = $this->getDoctrine()
->getManager()
->getRepository('VisitBILocationsBundle:Location')
->findAll();
if (!$locations) {
return array(
'locations' => $locations,
'status' => 1
);
}
return array(
'locations' => $locations,
'status' => 0
);
}
/**
* GET /locations/{locationId}
*
* @return Array
*
*/
public function getAction($id)
{
$location = $this->getDoctrine()
->getManager()
->getRepository('VisitBILocationsBundle:Location')
->findBy(array('id' => $id));
if (!$location) {
return array(
'location' => $location,
'status' => 1
);
}
return array(
'location' => $location,
'status' => 0
);
}
/**
* GET /locations/{name}/detail
*
* @return Array
*/
public function getDetailAction($name)
{
$detail = $this->getDoctrine()
->getManager()
->getRepository('VisitBILocationsBundle:LocationDetail')
->findBy(array('name' => $name));
if (!$detail) {
return array(
'locationDetail' => $detail,
'status' => 1
);
}
return array(
'locationDetail' => $detail,
'status' => 0
);
}
}
Я боролся с этим, но кто-нибудь знает, как мне приступить к созданию одного пользовательского URL-адреса, подобного этому:
/api/locations/nearby/{широта}/{долгота}
Идея состоит в том, что я бы предоставил свои собственные широту и долготу, а серверная часть вычислит и предоставит ближайшие ко мне местоположения.
Конечно, я просмотрел документацию FOSRestBundle для ручной настройки маршрута, но, поскольку я потратил некоторое время, пытаясь это сделать, я пришел сюда, чтобы попросить о помощи :)