皮皮网

【java家教平台源码】【仿司机宝源码】【禅意花园源码下载】kama源码

2024-12-23 01:48:39 来源:服装超市网站源码

1.RUST web框架axum快速入门教程2

kama源码

RUST web框架axum快速入门教程2

       在上一篇文章中,源码我们探讨了axum获取参数的源码方法。现在,源码我们将深入探讨axum如何构建响应内容。源码如果您对axum的源码请求参数处理还不够熟悉,可以查阅我之前的源码java家教平台源码文章:youerning.top/post/axum...

       常见的响应内容分为两类:HTML和JSON。它们对应的源码Content-Type分别是text/html和application/json。前者通常用于直接渲染前端页面,源码并常与模板引擎库(如askama)配合使用;后者主要用于接口开发,源码以便后端与各种前端都能兼容。源码

       本文使用的源码依赖项包括:

       HTML响应:

       若只是返回静态内容,则显得较为无趣。源码通常情况下,源码我们会结合模板引擎来使用。源码

       需要注意的源码是:askama默认模板位于当前目录的templates目录下,因此需要指定templates/目录前缀。

       hello.html的仿司机宝源码内容如下:

       使用curl请求的结果如下:

       askama的模板语法与Jinja2的语法基本一致,但也会有一些不同之处,这主要是由其实现语言的特点所决定的。详细信息可以查看:djc.github.io/askama/te...

       JSON响应:

       以下是一些常用的代码示例:

       json3到json4的结果相同,这里简单展示一下对应的请求和响应。

       如果查看Json的源代码,会发现它只接受一个约束,即serde的Serialize trait。这是禅意花园源码下载一个代表可序列化的trait,至于如何序列化,Json对象会负责处理。这里简单展示一下对应的源代码。

       因此,一些数据库的model可以通过#[derive(Serialize)]来实现Serialize,这样就可以方便地将查询到的数据结果返回给前端。

       状态码:

       到目前为止,我们已经能够处理大部分的kdj 底背离 源码响应,但还有一个问题尚未解决,那就是如何指定状态码。我们不可能总是将响应码设置为。默认情况下,如果只返回一个实现IntoResponse trait的对象,状态码都是。

       axum当然会考虑到这种情况,因此我们可以返回一个元组而非返回单个对象。多空提示源码元组的第一个对象是状态码,下面是一个简单的例子。

       这个例子比较简单,就不展示对应的请求和响应了。

       静态文件:

       到目前为止,我们已经解决了web开发中的多数响应相关的问题。那么,如何提供静态文件呢?例如,响应CSS、JS等静态资源文件。虽然Rust有一个强大的include_str宏,但手动实现这个功能还是显得有些无趣。因此,axum应该有相关的支持,或者说大多数web框架都支持这一点。不过,axum支持静态文件的方式与其他Rust web框架有所不同。

       axum与其他Rust web框架的一个很大不同之处在于,它基于tokio和tower技术栈。也就是说,它可以从这两者那里继承很多优势,例如tower的中间件服务。这些中间件包括但不限于超时、重连、重试等。

       tower是一个模块化和可复用的库,提供了一套很棒的请求-响应模型,可以用来开发健壮的网络客户端和服务端。

       上面的例子就是将本地的templates目录映射到服务端的/templates。

       小结:

       除了本文提到的响应,axum其实还支持很多常用的响应类型,如Redirect、SSE等。这应该能够满足大部分需求。如果不行的话,可以自己实现IntoResponse。

       参考链接:

       原文链接:youerning.top/axum/quic...