我想使用单一的azure函数名,但对于每个函数,http操作将是不同的,这是可能的吗?
例如:
@FunctionName("message")
public ResponseDTO saveMessage(
@HttpTrigger(name = "messageReq", methods = {HttpMethod.POST}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage<Optional<Message>> request,
ExecutionContext context) {
return handleRequest(request.getBody().get(), context);
}
@FunctionName("message")
public ResponseDTO getMessage(
@HttpTrigger(name = "MessageGetReq", methods = {HttpMethod.GET}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage request,
@BindingName("to") String to, ExecutionContext context) {
return handleRequest(to, context);
}
@FunctionName("message")
public ResponseDTO deleteMessage(
@HttpTrigger(name = "MessageGetReq", methods = {HttpMethod.DELETE}, authLevel = AuthorizationLevel.ANONYMOUS) HttpRequestMessage request,
@BindingName("id") String id, ExecutionContext context) {
return handleRequest(id, context);
}我尝试了相同的方法,但不知道如何在bean文件中处理,因为@Bean名称应该与函数名匹配,但在这种情况下,所有bean名称都将与'message‘相同,这将抛出一个错误,即使我们没有定义bean名称,它也将与方法名称匹配,但对于所有3个方法名称,都将是'message’,这将导致编译错误。
@Bean("message")
public Function<Message,ResponseDTO> saveMessage() {
return message -> {
return msgService.saveMessage(message);
};
}
@Bean("message")
public Function<String, ResponseDTO> deleteMessage() {
return id -> msgService.getMessages1(id);
}
@Bean("message")
public Function<String, ResponseDTO> getMessage() {
return to -> msgService.getMessages1(to);
}这样,我希望只有一个azure函数名为'message‘,并带有GET/POST/DELETE操作。任何帮助都将不胜感激。
发布于 2020-11-08 18:55:20
您是否能够通过在每个函数上指定相同的路由来执行此操作-然后忽略名称,因为它应该通过路由,然后根据操作确定函数。
例如route = /api/message
https://stackoverflow.com/questions/64731272
复制相似问题