如何在 Spring Boot 中调用 Restful WebService



我有一个用于发送电子邮件的SB服务。我想在我现有的应用程序中使用它,我该怎么做? 我正在考虑创建一个处理传入的HttpRequest和HttpResponse的控制器。但仍然不知道我现有的应用程序将如何调用它。我还需要一些关于SB应用程序将如何与其他应用程序独立运行的高级概述。 附言-电子邮件服务没有UI界面,因此我不会像通常在控制器中那样映射URL。

这是我的示例电子邮件服务:

public class EmailService {
public HashMap<String, String> sendMessage(String emailFrom, String[] emailToList, String subject, Context ctx) {
...../*Business Logic*/
}
}

我之前创建了一个这样的控制器来测试这一点:

@RestController
public class CourseController {
@Autowired
private EmailService emailService;
@RequestMapping(value = "/sendEmail", method = RequestMethod.POST)
public void sendEmail() {
emailService.sendMessage("abc@gmail.com","{client@gmail.com}", "testSubject",new Context);
}

上下文包含一些业务数据。 我有一个jsp,我正在使用并发布我的表单,它通过它进行映射。一切正常。

但是现在我想将其与我现有的应用程序(它在支柱 1 上)集成,因此不会有任何要映射的 uri。必须从调用应用程序创建某种 HttpRequest,我的控制器应该处理它。 我怎样才能做到这一点?

您已经实现了此服务?然后,您需要一个 RestController 类来应用您选择的 uri。在此类中,您需要注入实现电子邮件发送方法的服务类。这个类是否用@Service注释?如果不看到您的代码,很难解释。下面是一个 REST 接口的示例:

@RestController
@RequestMapping("/api/v1/email")
public class RestClass {
private EmailService emailService;
@Autowired
public RestClass(EmailService emailService){
this.emailService = emailService;
}
@RequestMapping(method = RequestMethod.POST)
public ResponseEntity<?> sendEmail(@RequestBody EmailDTO emailDTO){
String emailAdress = emailDTO.getEmail();
this.emailService.sendEmail(emailAdress);
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
}

因此,在这种情况下,电子邮件服务将是具有发送电子邮件的方法的类。此类应使用 @Service 进行批注。希望有帮助。

下面是您现有的类:

@Service
public class EmailService {
public HashMap<String, String> sendMessage(String emailFrom,  String[]   emailToList, String subject, Context ctx) {
...../*Business Logic*/
}

}

如果注入不起作用,您必须使用 @ComponentScan({"com.foo.dal.","com.foo.notification."}) 注释您的应用程序类。只需将此包替换为服务和资源类的包即可。

我不确定这个问题。如果我是对的,您需要从应用程序调用休息服务。在这种情况下,使用Spring的RestTemplate链接要容易得多和方便

您可以在此处获得一些概述

相关内容

  • 没有找到相关文章

最新更新