当前位置: 首页 > 知识库问答 >
问题:

被REST API类搞糊涂了

沈飞翔
2023-03-14

我正在尝试学习如何使用他们网站上的“入门”教程使用丢弃向导构建REST API:

https://www.dropwizard.io/en/stable/getting-started.html

我对为了使程序正常工作而必须创建的所有类的目的感到非常困惑。本教程在某种程度上解释了这些类,但我发现解释非常模糊和神秘。有人可以用通俗的话向我解释每个课程的目的是什么吗?

  1. 配置类
  2. 应用程序类
  3. 表示类
  4. 资源类

共有2个答案

呼延俊风
2023-03-14

对于刚开始熟悉Dropwizard的人来说,这可能有点令人生畏,但是文档尽力解释这些类是做什么的。我将尽最大努力简化每一个类,以便更容易理解它们,并给出一些如何构建代码的示例:

1. 配置类

假设我们正在构建一个有点复杂的应用程序,可能是服务的后端,我们需要配置(可能是 config.yml)。一旦我们编写了所需的任何配置字段,配置类将非常有用,因为它将反序列化配置文件中的信息,并使其在应用程序配置类中可用,以供我们的 dropwizard 应用程序使用。

Each Dropwizard application has its own subclass of the Configuration class which specifies environment-specific parameters.

您非常需要这些类中的一个来创建您的Dropwizard应用程序,这也是一个很好的实践。

2.申请类别

我认为应用程序类是应用程序的引导加载程序!它使用您刚刚编写的配置类,并开始运行您的Dropwizard应用程序。它还有一些方便的方法(如初始化和运行),您可以使用这些方法来初始化任何您需要的东西以使您的应用程序正常运行(也许您想设置依赖注入或添加一些捆绑包,您认为您的应用程序运行所需的任何东西)

3.类的表示

这是在最低级别:您尝试获得的裸模型。也许我们正在制作一个 Dropwizard 应用程序来访问用户数据,因此您的表示类将是一个用户类。它只是一个简单的POJO(普通的旧Java对象)类,有点从所有Dropwizard的东西中抽象出来。

4.资源类

您可以使用资源类构建REST服务。根据您的需要,您可以建立多个endpoint,为您的UI代码库和/或其他人访问提供GET、POST、PUT等请求。这是其他人访问您的表示类和您感兴趣的内容的一种方式。它几乎公开了应用程序的REST服务。

希望这能消除一些困惑。

翟嘉祥
2023-03-14

请注意,格式不适合注释:

 类似资料:
  • 我一直在研究集合之间的差异。排序和列表。排序,特别是关于使用比较器静态方法以及lambda表达式中是否需要参数类型。在我们开始之前,我知道我可以使用方法引用,例如Song::getTitle来克服我的问题,但我这里的查询并不是我想要修复的东西,而是我想要的答案,即为什么Java编译器会以这种方式处理它。 这些是我的发现。假设我们有一个类型的,添加了一些歌曲,有3个标准get方法: 以下是对两种类型

  • 我本想把它添加到另一个线程中,但我无法评论其他帖子。我读到的没有回答我的问题。我刚刚安装了EAP 7.2.0。GA。在控制台日志中,它说: 然而,其他人认为它是在第13版左右。当我看野蝇(http://wildfly.org/downloads/)的版本时,第6版太老了,甚至没有出现,应该是在2014年之前... 那么,它怎么可能是6.0.11呢。最终的

  • 通过一些教育材料,我的任务是使用下面的结构(课程)进行文本冒险游戏,并被要求为英雄和敌人之间的战斗添加一个简单的战斗系统。 目前,我可以在每个房间创建一个敌人,并在起始房间(走廊)到浴室和后面之间移动,但在这一点上,我被卡住了。我无法确定我应该在哪里创建我的“英雄”,或者如何传达我需要对健康属性进行的更改等。 如果我能以另一种方式构造代码,我就能够完成游戏,但就目前而言,我对如何使代码的各个部分能

  • 当我运行以下代码段时,我得到了臭名昭著的pandas设置WithCopyWarning: 我曾尝试通过添加一个。复制()如下: 不幸的是,我没有得到任何改变的警告。大量的谷歌搜索和StackOverflow并没有让我更进一步地理解语法中的根本错误,或者我是如何无意中链接的。代码似乎运行正常,但我讨厌忽略错误消息,希望它们被证明是无关的。 我非常感谢您对我的代码进行修复,并简单解释为什么会出现这种情

  • 写给那些让我糊里糊涂的HTTP、TCP、UDP、Socket 先来一个讲TCP、UDP和HTTP关系的,注意红色mark的部分 1. TCP/IP是个协议组,可分为三个层次:网络层、传输层和应用层。 在网络层有IP协议、ICMP协议、ARP协议、RARP协议和BOOTP协议。在传输层中有TCP协议与UDP协议。在应用层有FTP、HTTP、TELNET、SMTP、DNS等协议。因此,HTTP本身就是

  • 问题内容: 我正在使用Java Swing编写游戏。我想在每次循环执行时绘制一下,并在之间稍加延迟以在屏幕上创建级联效果。我相信系统中的效率例程会将调用折叠为一个调用。无论如何,所有更改都在总延迟后立即发生。是否有某种方法可以强制系统立即重新绘制,然后在循环的每次迭代中延迟? 我的代码: 问题答案: 您可以用来强制立即重绘。 编辑:再次阅读您的问题后,对我来说,您可能正在事件分发线程上执行逻辑。这