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 将不会被设置。