Slim Framework 3:创建 Restful Web 服务
Slim Framework 3: Create Restfull webservice
我正在构建一个 returns json 使用 Slim Framework 3 的 restfull 网络服务。
最好的方法是什么?我应该使用框架还是中间件。
我尝试了中间件,但问题是我需要 returns json 的路由和 returns 正常html.
你最好使用框架。但最终,这取决于您的应用程序有多大,以及维护大块代码的复杂程度。框架所做的只是通过抽象意大利面条代码让您的生活更轻松。
中间件最适合身份验证、缓存等。您无法直接访问中间件中的路由参数。
您只需使用智能应用程序路由即可轻松摆脱困境。利用slim中的路由分组映射,很有用
这是我知道的一个妙招。通过简单的操作将中间件添加到组中:
$app->group(..., ...)->add(middleware class or function goes here);
这样做可以将中间件的存在限制在该组内。它对于设置 headers 和执行身份验证很有用。
Json 回应
至于生成 JSON 响应,我建议您使用以下技术:
return $res->withJson(data)->withHeader('Content-Type', 'application/json');
请注意,您应该传递原始数据。使用 Json 的方法将为您进行编码。您还应该在设置 headers 后立即 return 响应,就像我在上面所做的那样。如果不这样做,headers 将不会被设置。
我正在构建一个 returns json 使用 Slim Framework 3 的 restfull 网络服务。 最好的方法是什么?我应该使用框架还是中间件。
我尝试了中间件,但问题是我需要 returns json 的路由和 returns 正常html.
你最好使用框架。但最终,这取决于您的应用程序有多大,以及维护大块代码的复杂程度。框架所做的只是通过抽象意大利面条代码让您的生活更轻松。
中间件最适合身份验证、缓存等。您无法直接访问中间件中的路由参数。
您只需使用智能应用程序路由即可轻松摆脱困境。利用slim中的路由分组映射,很有用
这是我知道的一个妙招。通过简单的操作将中间件添加到组中:
$app->group(..., ...)->add(middleware class or function goes here);
这样做可以将中间件的存在限制在该组内。它对于设置 headers 和执行身份验证很有用。
Json 回应
至于生成 JSON 响应,我建议您使用以下技术:
return $res->withJson(data)->withHeader('Content-Type', 'application/json');
请注意,您应该传递原始数据。使用 Json 的方法将为您进行编码。您还应该在设置 headers 后立即 return 响应,就像我在上面所做的那样。如果不这样做,headers 将不会被设置。