当前位置: 首页 > 知识库问答 >
问题:

symfony 3和FOSRest包路由

邢焱
2023-03-14

我试图设置Symfony3代码库与FOS REST捆绑和我最终得到没有路由发现错误

AppBundle\Resources\config\api路由。yml

check:
    type: rest
    resource: "@AppBundle/Controller/CheckController.php"

app\config\routing.yml

app:
    type: rest
    prefix: /
    resource: '@AppBundle/Resources/config/api-routing.yml'

控制器

namespace AppBundle\Controller;

use FOS\RestBundle\Controller\FOSRestController;
use FOS\RestBundle\Controller\Annotations\Version;
use FOS\RestBundle\Controller\Annotations\RouteResource;
use Symfony\Component\HttpFoundation\Request;

/**
 * @RouteResource("Check")
 * @Version("v1")
 */

class CheckController extends FOSRestController
{

    public function getAction(Request $request)
    {
        $data = "Ok";
        return new JsonResponse($data);
    }
}

http://127.0.0.1:8000/v1/app/check/ return no route

我想集成rest api路由的版本控制。你能告诉我这个错误是什么吗?我该如何纠正这个错误?

fos_rest:
    body_listener: true
    versioning:
        enabled: true
        resolvers:
            query: 
                enabled: true
                parameter_name: version
    format_listener:
        rules:
            - { path: '^/', priorities: ['json'], fallback_format: json, prefer_extension: false }
    param_fetcher_listener: true
    view:
        view_response_listener: 'force'
        formats:
            json: true

共有1个答案

龙承颜
2023-03-14

下面是一个工作示例。

app\config\routng。yml

app:
    type: rest
    resource: "@AppBundle/Resources/config/routing.yml"
    prefix: /api

AppBundle\Resources\config\routing。yml

rest_my:
    type: rest
    prefix: /v1
    resource: "@AppBundle/Controller/MyRestController.php"
    name_prefix:  api_1_

活动路线为:

http://127.0.0.1:8000/api/v1/<MyRestControllerAction>

或用于第二控制器

AppBundle\Resources\config\routing。yml

rest_user:
    type: rest
    prefix: /v1/user
    resource: "@AppBundle/Controller/UserRestController.php"
    name_prefix:  api_1_

活动路线为:

http://127.0.0.1:8000/api/v1/user/<UserRestControllerAction>

我希望我能帮到你...下巴。

更新#1:以下是我将json格式转换为config.yml文件的完整fos_rest配置:

fos_rest:
    routing_loader:
        default_format: json
        include_format: false
    body_converter:
        enabled: true
    body_listener:
        decoders:
            json: fos_rest.decoder.json
    format_listener:
        enabled: true
        rules:
            - { path: '^/api/v1/', priorities: ['json'], fallback_format: json, prefer_extension: true}
            - { path: '^/', priorities: ['json', 'html'], fallback_format: 'html' }
    serializer:
        serialize_null: true
    view:
        view_response_listener: 'force'
        templating_formats:
            html: false
    param_fetcher_listener: 'force'

如果您需要更多信息,请确保您拥有fos_rest的完整文档http://symfony.com/doc/current/bundles/FOSRestBundle/configuration-reference.html

 类似资料:
  • 我正在使用Symfony2和fos restbundle开发一个应用程序。我想创建一些API路由和一些常规路由(AngularJS前端正好有一个)。这是我的fos_rest配置(以及sensio的一些配置行): 如你所见,我view_response_listener启用和查看注释禁用。我找不到方法来定义常规(不是REST)路由(和视图)的索引操作(AngularJS的必要条件)。不断得到一个错误

  • 本文向大家介绍symfony3 使用YAML进行路由,包括了symfony3 使用YAML进行路由的使用技巧和注意事项,需要的朋友参考一下 示例 路由配置包含在您的app/config/config.yml文件中,默认情况下是该app/config/routing.yml文件。 从那里,您可以链接到捆绑包中的自己的路由配置 它还可能包含多个应用程序全局路由。 您可以在自己的捆绑包中配置路由,该路由

  • 因此,我使用createQuery连接到我的symfony数据库,其原则如下 在url:http://localhost/symfony/web/app_dev.php/json,现在我要在Android(eclipse Android)上导出结果(jsonreponse),并在那里显示响应!我怎么能那么做? 我在google上找到了这段关于在Android上显示json代码的代码,但我不知道如何

  • 本文向大家介绍symfony3 3. Windows系统,包括了symfony3 3. Windows系统的使用技巧和注意事项,需要的朋友参考一下 示例 您必须将php添加到您的路径环境变量中。请遵循以下步骤: Windows 7的 : 右键单击“我的电脑”图标 单击属性 点击左侧导航栏中的高级系统设置 单击高级选项卡 单击环境变量按钮 在“系统变量”部分中,选择“路径(不区分大小写)”,然后单击

  • 我目前正在创建一个Symfony3应用程序,我无法使我的登录表单工作;我遵循以下步骤: http://symfony.com/doc/current/cookbook/security/form_login_setup.html http://symfony.com/doc/current/cookbook/doctrine/registration_form.html 注册系统正在工作,但我无法

  • 问题内容: 我想在Symfony中启动一个新的3.3项目,并像往常一样开始: 1.)创建新项目: 2.)创建一个新的捆绑包:(Paul / ArtBundle,yml,src /) 然后我运行本地服务器,当我打开127.0.0.1:8000时,我得到了一条漂亮的消息: (1/1)ClassNotFoundException 尝试从命名空间“ Paul \ ArtBundle”加载类“ PaulAr