我正在构建一个restfull webservice,使用Slim Framework 3返回json。 这样做的最佳方法是什么?我应该使用框架还是中间件。
我尝试过中间件,但问题是我需要返回 json 的路由以及其他返回普通html 的路由。
答案 0 :(得分:1)
最好使用框架。但最终,它归结为应用程序的大小,以及维护大块代码的复杂程度。所有框架都通过抽象spagettie代码使您的生活更轻松。
中间件最适合身份验证,缓存等。您无法直接访问中间件中的路径参数。
只需智能应用程序路由即可轻松实现。利用路径分组和映射,它们非常有用。
这是我知道的一个巧妙的技巧。通过简单的操作将中间件添加到组中:
$app->group(..., ...)->add(middleware class or function goes here);
通过这样做,您可以将中间件的存在限制为该组。它对设置标头和执行身份验证很有用。
至于生成JSON响应,我建议您使用以下技术:
return $res->withJson(data)->withHeader('Content-Type', 'application/json');
请注意,您要传递原始数据。 withJson方法将为您进行编码。您也应该在设置标题后立即返回响应,就像我上面所做的那样。如果您不这样做,则不会设置标题。