【发布时间】:2017-10-09 08:16:11
【问题描述】:
我正在为我在 Symfony 中的一个项目开发 Api,我想创建几个路由路径,如下所示:
/api/messages/{id}
/api/messages/creator/{username}
/api/messages/receiver/{username}
我的路由文件是这样配置的(我将只发布与 api 配置相关的信息):
routing.yml:
NelmioApiDocBundle:
resource: "@NelmioApiDocBundle/Resources/config/routing.yml"
prefix: "/doc"
api:
type: rest
resource: "routing_api.yml"
prefix: /api
routing_api.yml:
api_message:
type: rest
resource: AppBundle\Controller\ApiMessagesController
api_chats:
type: rest
resource: AppBundle\Controller\ApiChatController
还有我的 ApiMessagesController:
<?php
namespace AppBundle\Controller;
use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\View\RouteRedirectView;
use FOS\RestBundle\Controller\Annotations\RouteResource;
use Nelmio\ApiDocBundle\Annotation\ApiDoc;
/**
* Class ApiMessagesController
* @package AppBundle\Controller
*
* @RouteResource("messages")
*/
class ApiMessagesController extends FOSRestController{
/**
* Gets an individual Message
*
* @param int $id
* @return mixed
* @throws \Doctrine\ORM\NoResultException
* @throws \Doctrine\ORM\NonUniqueResultException
*
* @ApiDoc(
* output="AppBundle\Entity\Message",
* statusCodes={
* 200 = "Returned when successful",
* 404 = "Return when not found"
* }
* )
*/
public function getAction($id){;
return $this->get('app.message.manager')->findById($id);
}
/**
* Gets all messages sent by each users
*
* @param int $id
* @return mixed
* @throws \Doctrine\ORM\NoResultException
* @throws \Doctrine\ORM\NonUniqueResultException
*
* @ApiDoc(
* output="AppBundle\Entity\Message",
* statusCodes={
* 200 = "Returned when successful",
* 404 = "Return when not found"
* }
* )
*/
public function getCreatorAction($creator){
return $this->get('app.message.manager')->findByCreator($creator);
}
}
/api/messages/{id} 路由按我的预期工作,但我现在真的不知道如何定义路由/api/messages/creator/{creator},因为 Nelmio 告诉我我创建了这条路由/api/messages/{creator}/creator 而不是/api/messages/creator/{username}
我认为我已提供有关我的问题的所有信息,但如果缺少某些内容,请告诉我,我会更新我的问题。谢谢
【问题讨论】:
标签: rest api symfony routing restful-url