从Spring后端与Google API进行通信的适当方式是什么?

时间:2018-02-08 16:34:34

标签: java spring api backend google-translate

我正在尝试使用Spring从angular创建一个翻译器。所以在Spring中我创建了这个终点

package com.vir.controller;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;

import com.vir.exception.ApiError;
import com.vir.model.iTranslator;
import com.vir.service.iTranslateProcessorService;

import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiResponse;

@RestController
@RequestMapping("/api")
@Api(tags = "iTranslate")
public class iTranslateController {

    @Autowired
    @Qualifier("iTranslatorService")
    private iTranslateProcessorService itranslateProcessorService;


    @ApiOperation(value = "Translate a text input.")
    @ApiResponse(code = 400, message = "Generic error", response = ApiError.class)
    @PostMapping(value = "/iTranslate", produces = MediaType.APPLICATION_JSON_VALUE)
    public iTranslator iTranslate(@RequestBody(required = true) String text, @RequestBody(required = true) String target) {
        return itranslateProcessorService.process(text, target);
    }
}

我还制作了ItranslateProcessorService接口,它将调用iTranslator模型。我的问题是,在该模型中,我应该在哪里调用google API?我该怎么做才能返回google API返回的翻译或json文件? Here is the documentation of the google API

指向正确的方向会有所帮助,谢谢。

1 个答案:

答案 0 :(得分:0)

这显然是您要发送的HTTP请求。您的接口实现将建立HTTP连接,POST请求并返回响应。

确保汇集这些HTTP连接。它们的制作成本很高。

确保您考虑如果Google翻译调用超时或失败会发生什么。

我不同意您选择的退货类型:我建议您使用ResponseEntity<T>并将通用类型设置为对您的问题有意义的内容。

您需要知道Google翻译服务免费。如果您打算在一段时间内完成少量翻译,则必须付费。