阅读(2146) (0)

Micronaut HTTP 服务器

2023-02-23 11:18:09 更新

使用 CLI

如果您使用 Micronaut CLI create-app 命令创建项目,则默认包含 http-server 依赖项。

Micronaut 包括基于 Netty 的非阻塞 HTTP 服务器和客户端 API。

Micronaut 中 HTTP 服务器的设计针对微服务之间的消息交换进行了优化,通常采用 JSON 格式,并不打算作为完整的服务器端 MVC 框架。例如,目前不支持服务器端视图或传统服务器端 MVC 框架的典型特征。

HTTP 服务器的目标是尽可能容易地公开 API 以供 HTTP 客户端使用,而不管它们是用什么语言编写的。要使用 HTTP 服务器,您需要在构建中使用 http-server-netty 依赖项:

 Gradle Maven 
implementation("io.micronaut:micronaut-http-server-netty")
<dependency>
    <groupId>io.micronaut</groupId>
    <artifactId>micronaut-http-server-netty</artifactId>
</dependency>

下面是一个“Hello World”服务器应用程序:

 Java Groovy  Kotlin 
import io.micronaut.http.MediaType;
import io.micronaut.http.annotation.Controller;
import io.micronaut.http.annotation.Get;

@Controller("/hello") // (1)
public class HelloController {

    @Get(produces = MediaType.TEXT_PLAIN) // (2)
    public String index() {
        return "Hello World"; // (3)
    }
}
import io.micronaut.http.MediaType
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get

@Controller('/hello') // (1)
class HelloController {

    @Get(produces = MediaType.TEXT_PLAIN) // (2)
    String index() {
        'Hello World' // (3)
    }
}
import io.micronaut.http.MediaType
import io.micronaut.http.annotation.Controller
import io.micronaut.http.annotation.Get

@Controller("/hello") // (1)
class HelloController {

    @Get(produces = [MediaType.TEXT_PLAIN]) // (2)
    fun index(): String {
        return "Hello World" // (3)
    }
}
  1. 该类被定义为控制器,@Controller 注释映射到路径 /hello

  2. 该方法响应对 /hello 的 GET 请求并返回文本/纯内容类型的响应

  3. 通过定义一个名为 index 的方法,按照惯例,该方法通过 /hello URI 公开