Micronaut HTTP 服務(wù)器

2023-03-02 15:14 更新

使用 CLI

如果您使用 Micronaut CLI create-app 命令創(chuàng)建項(xiàng)目,則默認(rèn)包含 http-server 依賴項(xiàng)。

Micronaut 包括基于 Netty 的非阻塞 HTTP 服務(wù)器和客戶端 API。

Micronaut 中 HTTP 服務(wù)器的設(shè)計(jì)針對(duì)微服務(wù)之間的消息交換進(jìn)行了優(yōu)化,通常采用 JSON 格式,并不打算作為完整的服務(wù)器端 MVC 框架。例如,目前不支持服務(wù)器端視圖或傳統(tǒng)服務(wù)器端 MVC 框架的典型特征。

HTTP 服務(wù)器的目標(biāo)是盡可能容易地公開 API 以供 HTTP 客戶端使用,而不管它們是用什么語(yǔ)言編寫的。要使用 HTTP 服務(wù)器,您需要在構(gòu)建中使用 http-server-netty 依賴項(xiàng):

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

下面是一個(gè)“Hello World”服務(wù)器應(yīng)用程序:

 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. 該方法響應(yīng)對(duì) /hello 的 GET 請(qǐng)求并返回文本/純內(nèi)容類型的響應(yīng)

  3. 通過定義一個(gè)名為 index 的方法,按照慣例,該方法通過 /hello URI 公開


以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)