HTTP 请求指南
欢迎使用 Finch HTTP 请求指南!本指南将引导您完成在 Finch 应用程序中处理 HTTP 请求的步骤。无论您是经验丰富的开发人员还是刚刚起步,Finch 都提供了一套强大的工具来简化服务器端 Web 应用程序开发。
Request 对象
Request 对象用于在 Finch 应用程序中处理 HTTP 请求。它包含处理请求所需的所有属性。以下是使用示例:
app.get(
path: '/',
index: (rq) async {
return rq.renderString(text: 'Hello World');
},
);
在 Finch 应用程序中,Request 变量命名为 rq。您可以使用此变量访问 Request 对象的所有属性。
属性:
httpRequest:请求的HttpRequest对象。session:请求的HttpSession对象。cookies:请求的 cookie 列表。stream:请求的流。uri:请求的 URI。response:请求的响应。method:请求的方法。isPost:检查请求是否为 POST 请求。- 等等,您可以在
Request类中找到更多。
读取请求数据
Finch 提供了一种方便的方式来读取请求数据。您可以使用 Request 对象的 data 方法来读取请求数据。以下是使用示例:
以下是读取请求数据的方法列表:
get<T>(key, {def, trim = true}):从请求中读取数据。这是一个泛型方法,可以读取任何类型的数据。
这种类型的数据可以从 GET 和 POST 请求中读取:
app.get(
path: '/',
index: (rq) async {
var name = rq.get<String>('name', def: 'World');
return rq.renderString(text: 'Hello $name');
},
);
参数
参数是在 URL 中发送的数据,或者在处理请求时可以使用 addParam 方法将它们添加到请求中。您可以使用 getParam 方法读取它们。例如,如果您有这样的 URL:/users/{id},您可以使用 getParam 方法读取 id 参数。
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
return rq.renderString(text: 'User ID: $id');
},
);
设置参数
您可以使用 addParam 方法设置参数。当您想要向请求对象添加一些数据时,这很有用。例如,您可以在身份验证后将用户对象添加到请求对象。
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
var user = await User.findById(id);
rq.addParam('user', user);
return rq.renderString(text: 'User ID: $id');
},
);
注意:
通过使用 addParam 方法,您可以向请求对象添加任何类型的数据。您还可以在模板中使用它们。例如,您可以将用户对象添加到请求对象,并在模板中像这样使用它:{{ user.name }}。
模板中不允许使用 future 参数。因此,您可以使用 async 和 await 关键字等待数据。例如:
app.get(
path: '/users/{id}',
index: (rq) async {
var id = rq.getParam('id');
var user = await User.findById(id);
rq.addParam('user', user);
return rq.renderString(text: 'User ID: $id');
},
);