云计算百科
云计算领域专业知识百科平台

JDK HTTP 服务器:真实世界后端开源演示

JDK HTTP Server代码库包含真实的世界的示例(CRUD,auth,高级模式等),

创建此代码库是为了演示使用JDK HTTP Server构建的完全成熟的全栈应用程序,包括CRUD操作,身份验证,路由,分页等。 有关如何与其他前端/后端一起工作的更多信息,请前往RealWorld repo。

运行演示部署在这里

这是由几个组件组成的。主要

  • jdk.httpserver模块,提供针对其编程的API
  • Jetty,它为jdk.httpserver提供了实际的支持实现
  • 数据库的PostgreSQL
  • RainbowGum用于日志

执行具体任务:

  • dev.mccue.jdk.httpserver用于提供Body抽象
  • dev.mccue.jdk.httpserver.regexrouter用于基本请求路由
  • dev.mccue.json用于读取和写入 JSON
  • dev.mccue.jdk.httpserver.json用于使用 JSON 作为并从sBody中读取它HttpExchange
  • dev.mccue.urlparameters用于解析查询参数
  • dev.mccue.jdbc用于UncheckedSQLException和SQLFragment
  • io.github.cdimascio.dotenv.java用于本地开发.env文件
  • slugify用于将文本转换为 url sage slug
  • com.zaxxer.hikari用于连接池
  • bcrypt用于密码盐和哈希
  • org.slf4j作为日志记录外观

几乎所有代码都包含在RealWorldAPI类中。如果此处做出的任何选择冒犯了您的感受,我鼓励您分叉并展示您希望完成的方式。如果您认为某些事情做得不够好或客观上存在问题,请提出问题。

具体来说,我鼓励大家

  • 尝试拆分 RealWorldAPI 类。
  • 尝试使用他们所选择的数据库抽象。 如果使用 Hibernate、JOOQ 或 JDBI,情况会怎样?
  • 尝试使用他们所选择的 JSON 库。 尝试将持久化/服务等整体拆分,这样会更好吗?
  • 添加单元测试。 对于这个问题,我可以直接使用 API 测试,但使用 JUnit 测试会怎样呢?

先决条件

  • Java 22 或更高版本
  • SDKMan
  • Docker

用法 首先,启动 postgres $ docker compose up -d

然后安装 MyBatis Migrations。目前使用 SDKMan 最容易做到这一点。 $ sdk install mybatis

将migrations应用到数据库 $ cd migrations $ migrate up $ cd ..

然后运行服务器

  • 在编辑器中打开项目

  • 通过 maven 运行它( ./mvnw exec:java -Dexec.mainClass="dev.mccue.jdk.httpserver.realworld.Main")

  • 通过docker运行

$ docker build -t realworld . $ docker run realworld

该项目的文件.env已提交到存储库。请注意,一般来说,这是一个坏主意/做法,但这里唯一的秘密是本地数据库连接,所以没问题。

https://www.jdon.com/76454.html

赞(0)
未经允许不得转载:网硕互联帮助中心 » JDK HTTP 服务器:真实世界后端开源演示
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!