java—在普通spring和angular应用程序的上下文中,api是什么?

rjee0c15  于 2021-09-13  发布在  Java
关注(0)|答案(1)|浏览(401)

api上有大量可用信息。guru99有一个很好的页面。不过,现有的信息相当笼统。我不确定它到底如何适用于我熟悉的工作。我的工作是使用spring和angular开发web应用程序。
在这种情况下,api是什么?它是用户输入文本并单击按钮的用户界面吗?是spring dispatcherservlet处理来自前端的传入请求并将它们引导到正确的后端spring控制器方法吗?是Spring控制器本身吗?api是否位于将请求发送回后端的前端服务类中?这些服务类将包含使用rxjs可观察对象的方法,如下所示。

棱角的
getCards(): Observable<Card[]> {
  return this.http.get<Card[]>(this.baseUrl+'cards')
  .pipe(catchError(this.handleError<Card[]>('getCards', [])));
}

后端控制器方法如下所示:

Spring
@RestController
@RequestMapping("cards")
@AllArgsConstructor(onConstructor = @__(@Autowired))
public class CardControl {
    private final CardService cardService;

    @GetMapping
    public ResponseEntity<List<Card>> getCards(){
        List<Card> cards = cardService.findAll();
        return new ResponseEntity<>(cards, HttpStatus.OK);
    }
}

如果我要在这样一个应用程序上进行api测试,我到底要测试什么?该测试是在后端、前端还是在两者上进行?

aiazj4mn

aiazj4mn1#

通常,当我们谈论API(在web应用程序的上下文中)时,我们通常谈论后端。因此,在您的情况下,它将是您的spring控制器:

@RestController
@RequestMapping("cards")
@AllArgsConstructor(onConstructor = @__(@Autowired))
public class CardControl {
    private final CardService cardService;

    @GetMapping
    public ResponseEntity<List<Card>> getCards(){
        List<Card> cards = cardService.findAll();
        return new ResponseEntity<>(cards, HttpStatus.OK);
    }
}

因此,如果您要进行api测试,您将发送 GET [URL]/cards 请求到后端,并确保它返回您期望的内容。
在您的上下文中,有几个工具可用于api测试。
postman是一个具有良好ui的用户界面,您可以很容易地定义请求和测试。
rest assured是一个java库,允许您用java发送和测试请求。

相关问题