我找不到任何关于如何使用环回4更改成功的HTTP代码的资源。
例如:
201“创建”在post方法上
删除方法中的204“无内容”
我试图在@api装饰器中指定这一点,但是这个更改没有反映在实际的响应中。
谢谢你的帮助!
发布于 2019-02-15 13:41:14
我找不到任何关于如何使用环回4更改成功的HTTP代码的资源。
对于这个特性我们还没有一流的支持。当前的解决方法是将响应对象注入控制器方法,并通过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和RestBindings导入@loopback/rest,从@loopback/core导入inject。在控制器中添加以下导入。
import { Response, RestBindings } from '@loopback/rest';
import { inject } from '@loopback/core';201“创建”在post方法上
参见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);
}https://stackoverflow.com/questions/54655257
复制相似问题