首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在Java中向GetMapping添加逻辑

如何在Java中向GetMapping添加逻辑
EN

Stack Overflow用户
提问于 2020-12-22 13:26:46
回答 2查看 370关注 0票数 0

我试图用Spring实现一个非常简单的REST。在GET请求中,我想做一个非常基本的音译。因此,请求者必须发送输入字符串和音译字符串。

这些参数应该传递给我的方法,该方法返回音译。答复应如下所示:

代码语言:javascript
运行
复制
"input": ...
"transliterationrule": ...
"transliteration": ...

为此,我使用以下类创建了一个java spring引导项目:

  1. Transliteration类

进口com.ibm.icu.text.Transliterator;

公共类音译{

私有最终字符串输入;私有最终字符串transliterationRule;公共音译(字符串输入,字符串transliterationRule) { this.input =输入;this.transliterationRule = transliterationRule;}公共字符串transliterateString(){音译符音译=transliterationRule返回transliterator.transliterate(this.input);}公共字符串getInput(){返回输入;}公共字符串getTransliterationRule(){返回transliterationRule};

}

以及控制器类:

代码语言:javascript
运行
复制
@RestController
public class TransliterationController {

    @GetMapping("/transliteration")
    public Transliteration transliteration(@RequestParam(value="input", required=false, defaultValue="TestString") String input,
    @RequestParam(value="rule", required=false, defaultValue="Any-Latin") String transliterationRule) {
        return new Transliteration(input, transliterationRule);
    }

}

请有人解释一下,我如何将这些参数传递给我的方法transliterateString()?如何添加方法结果来执行请求?

EN

回答 2

Stack Overflow用户

发布于 2020-12-22 13:43:21

更改控制器的方法以返回ResponseEntity并包装TransliterationResponse。TransliterationResponse是一个包含“输入”的dto:.“音译规则”:.“音译”:.

代码语言:javascript
运行
复制
    @GetMapping("/transliteration")
public ResponseEntity<TransliterationResponse> transliteration(@RequestParam(value="input", required=false, defaultValue="TestString") String input,
@RequestParam(value="rule", required=false, defaultValue="Any-Latin") String transliterationRule) {
    // do your business logic
    //build the response dto
    TransliterationResponse dto = new TransliterationResponse(input, transliterationrule, transliteration);
    ResponseEntity.status(HttpStatus.OK).body(dto);
}
票数 1
EN

Stack Overflow用户

发布于 2020-12-22 13:49:58

创建一个包含所有响应值的DTO类:

代码语言:javascript
运行
复制
public class TransliterationDTO {    
    @JsonProperty("input")
    private String input;
    @JsonProperty("transliterationRule")
    private String transliterationRule;
    @JsonProperty("transliteration")
    private String transliteration;

    public TransliterationDTO() {
    }

    public TransliterationDTO(String input, String transliterationRule, String transliteration) {
        this.input = input;
        this.transliterationRule = transliterationRule;
        this.transliteration = transliteration;
    }

    // Getters and Setters
}

更新控制器方法以返回ResponseEntity:

代码语言:javascript
运行
复制
@RestController
public class TransliterationController {

    @GetMapping("/transliteration")
    public ResponseEntity<TransliterationDTO> transliteration(@RequestParam(value="input", required=false, defaultValue="TestString") String input,
                                           @RequestParam(value="rule", required=false, defaultValue="Any-Latin") String transliterationRule) {
        Transliteration t = new Transliteration(input, transliterationRule);
        return ResponseEntity.ok(new TransliterationDTO(t.getInput(), t.getTransliterationRule(), t.getTransliteration));
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65409537

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档