春のブートアプリケーションで独自のREST APIから別のREST APIを呼び出します

ミルザビラル:

私は、私は、Oracleからデータを取得し、私のコンピュータ上のAPIを展開するために管理している、春ブーツを学んでいます私は、リンク貼り付けたときにhttp:// localhostを:8080 / myapi / VER1 / table1dataブラウザで、それは私のデータを返します。以下は私のコントローラのコードは次のようになります。

@CrossOrigin(origins = "http://localhost:8080")
@RestController
@RequestMapping("/myapi/ver1")
public class Table1Controller {


    @Autowired
    private ITable1Repository table1Repository;

    @GetMapping("/table1data")
    public List<Table1Entity> getAllTable1Data() {
        return table1Repository.findAll();
    }

今、このシナリオでは、正常に動作しています。私は別の事をしたいです。APIのあるhttps://services.odata.org/V3/Northwind/Northwind.svc/Customers一部の顧客データを返します。春ブーツは、私が再ホスト/自分のコントローラからこのAPIを再配置することができるようにどのような方法を提供しています、このような代わりに、この上記打つのリンクをブラウザで、私がヒットする必要があります。http:// localhostを:8080 / myapi / VER1 / table1data、それは私に同じ顧客データを返します。

ビネーシュTI:

はい春ブーツはRestTemplateを経由してあなたのアプリから外部のURLをヒットする方法を提供します。以下は、文字列として応答を得るためのサンプル実装であるか、また、応答に応じて、必要な任意のデータ構造を使用することができ、

@RestController
@RequestMapping("/myapi/ver1")
public class Table1Controller {

   @Autowired
   private RestTemplate restTemplate;

   @GetMapping("/table1data")
   public String getFromUrl() throws JsonProcessingException {
        return restTemplate.getForObject("https://services.odata.org/V3/Northwind/Northwind.svc/Customers",
            String.class);
   }
}

あなたは残りのコントローラ用の豆を定義するために設定クラスを作成することができます。下記のスニペットがあり、

@Configuration
public class ApplicationConfig{

   @Bean
   public RestTemplate restTemplate() {
       return new RestTemplate();
   }

}

おすすめ

転載: http://10.200.1.11:23101/article/api/json?id=410547&siteId=1