跳转到内容

构建第一个 Feat HTTP 服务

这篇指南带你从零写出一个最小的 Feat HTTP 服务。目标很简单:先把服务跑起来,再把默认输出换成你自己的响应。

你将构建一个监听本机端口的 HTTP 服务。

  • 第一个版本直接使用 Feat 的默认处理器
  • 第二个版本显式注册 httpHandler(...)
  • 最终你会得到一个返回 Hello World 的最小服务
  • JDK 8 或更高版本
  • Maven 3.0 或更高版本
  • 一个熟悉的编辑器或 IDE
  • curl、浏览器或 HTTPie,用于验证接口

你可以从头新建一个 Maven 项目,也可以直接参考仓库里的示例代码:

  • feat-test/src/main/java/tech/smartboot/feat/demo/HelloFeat.java
  • feat-test/src/main/java/tech/smartboot/feat/demo/HelloWorld.java

如果你只是想快速感受 Feat 的编程模型,建议完整走一遍下面的步骤,不要一开始就跳进配置页。

新建一个 Maven 项目,在 pom.xml 中加入 feat-core

pom.xml
<dependency>
<groupId>tech.smartboot.feat</groupId>
<artifactId>feat-core</artifactId>
<version>${feat.version}</version>
</dependency>

先写最小版本:

HelloFeat.java
import tech.smartboot.feat.Feat;
public class HelloFeat {
public static void main(String[] args) {
Feat.httpServer().listen();
}
}

这段代码的含义非常直接:

  • Feat.httpServer() 创建 HTTP 服务
  • listen() 启动监听
  • 如果你没有注册任何处理器,Feat 会返回一段默认响应,方便你先确认链路是否正常

运行 HelloFeat.main() 后,请访问 http://localhost:8080

Feat 默认响应效果图

如果你看到了 Hello Feat,说明三件事已经成立:

  1. 依赖引入没有问题
  2. Feat 服务已经真正启动
  3. 你的本机 HTTP 访问链路是通的

接下来,把默认响应换掉:

HelloWorld.java
import tech.smartboot.feat.Feat;
public class HelloWorld {
public static void main(String[] args) {
Feat.httpServer()
.httpHandler(request -> request.getResponse().write("Hello World"))
.listen(8081);
}
}

这一次有两个变化:

  • 通过 httpHandler(...) 明确接管请求处理
  • 把端口改成 8081,避免和上一个示例冲突

再访问一次:

Feat 自定义响应效果图

到这里,Feat Core 的最小服务模型就已经很清楚了:

  1. 创建服务
  2. 注册处理器
  3. 启动监听

如果你准备继续往下走,有三条很自然的路径:

直接换端口即可:

Feat.httpServer().listen(9090);

程序看起来启动了,但浏览器访问不到

Section titled “程序看起来启动了,但浏览器访问不到”

先只检查三件事:

  1. 访问的端口是否和代码里一致
  2. 程序是否立即退出或报错
  3. 本机防火墙是否拦截了该端口

我是不是应该一开始就去看配置项

Section titled “我是不是应该一开始就去看配置项”

不用。
先把服务跑起来,再去看配置页,理解会更快。