java server.servlet.context-path不工作(wtf)

wtlkbnrh  于 2023-11-15  发布在  Java
关注(0)|答案(2)|浏览(82)

我的application.properties:

server.port=8080
server.servlet.context-path=/api

字符串
控制器:

@RestController
@RequestMapping("/posts")
public class PostController {

    @GetMapping({ "/v1.0" })
    public ResponseEntity<List<Post>> getPosts(@RequestParam Optional<String> maxId) {
        List<Post> posts = Arrays.asList(
                new Post(new ObjectId().toString(), "Test status 1", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 2", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 3", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 4", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 5", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 6", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 7", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 8", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 9", LocalDateTime.now()),
                new Post(new ObjectId().toString(), "Test status 10", LocalDateTime.now())
        );
        return ResponseEntity.ok(posts);
    }

}


这个uri在Postman中给了我一个结果:

localhost:8080/posts/v1.0


而这一个没有:

localhost:8080/api/posts/v1.0


说不通啊
版本号:

<parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.4.2</version>
</parent>


注意:application.properties可以正确读取,我可以随意更改端口号。

bnlyeluc

bnlyeluc1#

我目前正在编写的是样板文件(这就是为什么我还没有实现Webflux,只是为了让基本的REST API工作),但我添加了Maven Webflux包,因为我想要一个React式API:

<dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-webflux</artifactId>
    </dependency>

字符串
在这种情况下,需要以下属性:

spring.webflux.base-path=/api

xwmevbvl

xwmevbvl2#

如果希望URI具有动态和可更改前缀,则可以在属性文件中使用自定义变量,并通过${}将它们用作Map的前缀

相关问题