我找不到有关如何使用环回4更改成功HTTP代码的任何资源。
例如:
在发布方法上“创建”了201个
204删除方法“无内容”
我尝试在@api装饰器中指定此设置,但此更改未反映在实际响应中。
谢谢您的帮助!
答案 0 :(得分:5)
我找不到有关如何使用环回4更改成功HTTP代码的任何资源。
我们还没有对此功能的一流支持。当前的解决方法是将Response对象注入到控制器方法中,并直接通过Express / Node.js核心API设置状态代码。
export class TodoController {
constructor(
@repository(TodoRepository) protected todoRepo: TodoRepository,
@inject(RestBindings.Http.RESPONSE) protected response: Response,
) {}
async createTodo(@requestBody() todo: Todo): Promise<Todo> {
this.response.status(401);
// ...
}
}
不要忘记从Response
导入@loopback/rest
。在控制器中添加以下导入。
import { Response } from '@loopback/rest';
在发布方法上“创建”了201个
请参阅https://github.com/strongloop/loopback-next/issues/788中的讨论。困难的部分是如何在Location
响应标头中找出要发送的URL。
204删除方法“无内容”
只需更改您的控制器方法即可返回undefined
而不是当前的{count: 1}
对象。我相信这是我们的lb4
工具支撑的CRUD控制器的默认行为。
export class TodoController {
// ...
@del('/todos/{id}', {
responses: {
'204': {
description: 'Todo DELETE success',
},
},
})
async deleteTodo(@param.path.number('id') id: number): Promise<void> {
await this.todoRepo.deleteById(id);
}