Как прикрепить слово перед каждым запросом весной mvc? - PullRequest
0 голосов
/ 12 февраля 2020

У меня есть пружинный mvc контроллер, который имеет много методов. Во всех методах я начинаю путь с /api, за которым следует фактическое слово. В настоящее время я должен вручную ввести /api/request1 /api/request2 и так далее. Можно ли указать только имя моего запроса и /api автоматически добавляется?

Контроллер:

package com.json.host;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class Test {
    @GetMapping(value="/api/host")
    public String returnText() {
        return "hello";
    }
}

Ответы [ 3 ]

3 голосов
/ 12 февраля 2020

Вы можете добавить @RequestMapping("/api") на уровне класса, а затем опустить его на уровне метода.

Так что-то вроде этого должно помочь:

@RestController
@RequestMapping("/api")
public class Test {
    @GetMapping(value="/host")
    public String returnText() {
        return "hello";
    }
}

Документировано также в javado c:

Поддерживается как на уровне типа, так и на уровне метода! При использовании на уровне типа все сопоставления уровня метода наследуют это первичное сопоставление, сужая его для определенного метода обработчика c.

(https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RequestMapping.html):

1 голос
/ 12 февраля 2020

Вы можете добавить @RequestMapping("/api") на уровне класса, и в ваших методах отображения есть только оставшаяся часть URL.

package com.json.host;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.bind.annotation.RequestMapping;

@RestController
@RequestMapping("/api")
public class Test {
    @GetMapping(value="/host")
    public String returnText() {
        return "hello";
    }
}
0 голосов
/ 12 февраля 2020

Вам необходимо добавить @RequestMapping (value = "/ api") на уровне класса. он автоматически добавляется к запросам уровня метода.

@RestController
@RequestMapping(value = "/api")
public class Test {

    @GetMapping(value="/request1")
    public String returnText() {
        return "hello";
    }

    @GetMapping(value="/request2")
    public String returnText2() {
        return "hello2";
    }
}
...