首页 > 解决方案 > 我们可以在没有 API ID 的情况下调用外部 API 吗?

问题描述

我是 API 设计的新手,我正在做一个项目,我需要从波兰国家银行 http://api.nbp.pl调用货币兑换 API,但我没有看到任何可以找到 API ID 的迹象。如果我尝试在没有 API ID 的情况下运行应用程序,则会在 Spring Boot 上进行此开发,它会引发 404 错误。

这是我写的一段代码。

@RequestMapping(method = RequestMethod.GET, value = "/exchangerates/rates/{table}/{code}")
public @ResponseBody Object getAllCurriencyExchangeRates(@PathVariable String table, @PathVariable String code) {

    RestTemplate restTemplate = new RestTemplate();
    HttpHeaders headers = new HttpHeaders();

    ResponseEntity<Object> response = 
            restTemplate.getForEntity("http://api.nbp.pl/api/" +table+ "," +code+ Object.class, null, headers);

    return response;
}        

实际查询http://api.nbp.pl/api/exchangerates/rates/a/chf/

所以,我的问题是我们可以调用没有 API ID 的外部 API 吗?

标签: javaapispring-bootapi-designcurrency-exchange-rates

解决方案


首先,您试图访问错误的 API。这就是为什么您找不到 404 的原因。404 表示没有像你打电话的网址。

仔细检查你的restTemplate,

restTemplate.getForEntity("http://api.nbp.pl/api/" + table+ "," +code+ Object.class, null, headers);

连接字符串时你做错了。它应该看起来像这样;

restTemplate.getForEntity("http://api.nbp.pl/api/exchangerates/rates/"+table+"/"+code, Object.class, null, headers);

给 API 开发者一个提示,首先你应该使用 Postman 玩 api,然后用 api 编写代码。


推荐阅读