当前位置: 首页 > news >正文

ASP.NET与网站开发实践教程亿景网站建设

ASP.NET与网站开发实践教程,亿景网站建设,网站导航设计分析,当地网站建设问卷调查Python Web 开发#xff1a;FastAPI 入门实战 —— HTTP 基础与 RESTful API 设计 目录 #x1f680; HTTP 协议概述#x1f310; HTTP 请求与响应的工作原理#x1f6e0;️ RESTful API 设计理念#x1f5c2;️ JSON 格式数据的传输与解析 1. #x1f680; HTTP 协议概…Python Web 开发FastAPI 入门实战 —— HTTP 基础与 RESTful API 设计 目录 HTTP 协议概述 HTTP 请求与响应的工作原理️ RESTful API 设计理念️ JSON 格式数据的传输与解析 1. HTTP 协议概述 HTTPHyperText Transfer Protocol是现代互联网应用的基础协议它定义了浏览器与服务器之间进行通信的规则。通过 HTTP 协议客户端能够向服务器发送请求服务器则根据请求内容返回响应数据。HTTP 协议的工作模型是请求-响应模式客户端发出请求服务器返回响应。 请求方法Request Methods 在 HTTP 协议中请求方法决定了客户端希望对服务器上的资源执行何种操作。常见的请求方法包括 GET用于请求获取资源。GET 请求只用于获取数据不会对服务器上的数据造成任何修改。 app.get(/items/{item_id}) def read_item(item_id: int):return {item_id: item_id}POST用于向服务器提交数据通常用于创建资源。POST 请求会将数据发送到服务器并让服务器根据这些数据进行处理。 app.post(/items/) def create_item(item: Item):return {name: item.name, price: item.price}PUT用于更新资源。当客户端需要更新某个资源时使用 PUT 请求来提交新数据。与 POST 请求不同PUT 请求通常是幂等的即多次提交相同数据的结果是一样的。 app.put(/items/{item_id}) def update_item(item_id: int, item: Item):return {item_id: item_id, name: item.name, price: item.price}DELETE用于删除资源。DELETE 请求通常是幂等的即删除相同资源多次结果不会发生变化。 app.delete(/items/{item_id}) def delete_item(item_id: int):return {message: fItem {item_id} deleted}HTTP 状态码Status Codes HTTP 状态码是服务器响应的核心部分它指示了请求处理的结果。常见的状态码包括 2xx成功类 200 OK请求成功服务器返回所请求的资源或确认操作已完成。201 Created请求成功且服务器创建了新的资源。 3xx重定向类 301 Moved Permanently请求的资源已永久迁移到新位置。302 Found请求的资源暂时位于不同的位置。 4xx客户端错误类 400 Bad Request请求格式有误或缺少必要的参数。404 Not Found请求的资源不存在。 5xx服务器错误类 500 Internal Server Error服务器发生了未预料的错误导致请求无法完成。503 Service Unavailable服务器暂时不可用通常是由于服务器超载或正在进行维护。 在 FastAPI 中你可以自定义 HTTP 状态码 from fastapi import HTTPExceptionapp.get(/items/{item_id}) def read_item(item_id: int):if item_id 42:raise HTTPException(status_code404, detailItem not found)return {item_id: item_id}HTTP 头部Headers HTTP 请求和响应包含了许多有用的头部信息如请求的内容类型、响应的格式、缓存策略等。常见的头部包括 Content-Type指定请求或响应的内容类型。例如application/json 表示发送的内容是 JSON 格式。Authorization用于身份验证常见的如 Bearer Token。User-Agent指定发起请求的客户端软件如浏览器或应用。 在 FastAPI 中头部可以通过参数注入 from fastapi import Headerapp.get(/header/) def read_header(user_agent: str Header(...)):return {User-Agent: user_agent}2. HTTP 请求与响应的工作原理 HTTP 协议的工作原理基于客户端和服务器之间的请求-响应模型。当客户端向服务器发出请求时服务器解析请求并返回响应。整个过程分为以下几个步骤 客户端发起请求 客户端发起 HTTP 请求时包含以下主要信息 请求行包括 HTTP 方法如 GET、POST、请求的资源路径和协议版本。例如GET /items/123 HTTP/1.1。请求头包含请求的元数据如 Content-Type、Authorization 等。请求体可选在 POST、PUT 等方法中请求体包含了客户端发送给服务器的数据如 JSON 格式的对象。 在 FastAPI 中HTTP 请求通常通过 HTTP 方法装饰器定义例如 app.get(/path)。 服务器处理请求 服务器接收到 HTTP 请求后会根据请求的 URL 路径、方法及参数进行处理。FastAPI 会根据请求的 URL 路径和 HTTP 方法匹配相应的视图函数。当请求包含参数时FastAPI 会自动将这些参数提取并传递给函数。例如 app.get(/items/{item_id}) def read_item(item_id: int):return {item_id: item_id}此时item_id 就是从 URL 路径中提取的参数。 服务器返回响应 服务器根据处理结果构建一个 HTTP 响应包含响应行、响应头和响应体。响应体通常是请求数据的结果格式可能是 JSON、HTML、纯文本等。 在 FastAPI 中响应数据通常是 JSON 格式 from fastapi import FastAPIapp FastAPI()app.get(/items/{item_id}) def read_item(item_id: int):return {item_id: item_id}当客户端接收到响应时它将解析响应头和响应体并根据需要进行处理。 3. ️ RESTful API 设计理念 RESTRepresentational State Transfer是一种基于 HTTP 协议的架构风格用于设计可扩展和可维护的 API。RESTful API 是遵循 REST 架构风格设计的 API它利用 HTTP 方法来定义操作并通过 URL 进行资源标识。 资源的定义 在 RESTful API 中一切内容都被视为资源。资源可以是数据实体如用户、商品、订单等也可以是服务或操作。每个资源都应该具有唯一的标识符通常是 URL 路径。 例如在一个电商平台中可以定义以下资源 用户资源/users/{user_id}商品资源/products/{product_id} 资源的操作 RESTful API 通过 HTTP 方法对资源进行操作。常见的操作包括 GET用于查询资源。通过 GET 请求可以获取某个资源的详细信息或者获取资源的列表。POST用于创建资源。通过 POST 请求可以将新资源提交到服务器并创建新的数据实体。PUT用于更新资源。通过 PUT 请求可以修改现有资源的数据。DELETE用于删除资源。通过 DELETE 请求可以删除某个资源。 RESTful URL 设计原则 RESTful API 的 URL 设计应该遵循以下原则 使用名词表示资源而不是动词。比如/items 表示所有的商品资源而不是 /getItems。使用层级结构来表示资源之间的关系。例如/users/{user_id}/orders 表示某个用户的订单。 app.get(/users/{user_id}/orders) def get_orders(user_id: int):return {user_id: user_id, orders: orders}4. ️ JSON 格式数据的传输与解析 JSONJavaScript Object Notation是一种轻量级的数据交换格式易于人类阅读和编写同时也易于机器解析和生成。它在 Web 开发中广泛应用尤其是在客户端与服务器之间的数据传输中。 JSON 数据格式 JSON 数据格式由键值对组成键是字符串值可以是字符串、数字、布尔值、数组、对象或 null。例如 {name: John Doe,age: 30,is_student: false,courses: [Math, Science] }在 FastAPI 中客户端和服务器通过 JSON 格式进行数据交互。FastAPI 会自动处理 JSON 的解析和生成客户端只需要发送符合 JSON 格式的数据即可。 FastAPI 中的 JSON 解析 FastAPI 使用 Pydantic 模型来验证和解析 JSON 数据。在请求 体中FastAPI 会自动将 JSON 数据转换为 Python 对象并根据定义的 Pydantic 模型进行验证。例如 from pydantic import BaseModelclass Item(BaseModel):name: strprice: floatapp.post(/items/) def create_item(item: Item):return {name: item.name, price: item.price}在客户端发送一个 JSON 请求时 {name: Laptop,price: 1000.0 }FastAPI 会自动解析这个 JSON 请求并将其转换为 Item 对象。 JSON 响应 FastAPI 在返回响应时也会使用 JSON 格式。默认情况下FastAPI 会将返回的数据自动转换为 JSON 格式 app.get(/items/{item_id}) def get_item(item_id: int):return {item_id: item_id, name: Laptop, price: 1000.0}客户端接收到的响应将会是 {item_id: 1,name: Laptop,price: 1000.0 }以上内容涵盖了 HTTP 协议基础、请求与响应的工作原理、RESTful API 设计理念以及 JSON 格式的数据传输与解析为 FastAPI 入门打下了坚实的基础。通过这些知识可以更好地理解 FastAPI 的工作机制进而高效地构建 Web 应用。
http://www.w-s-a.com/news/330913/

相关文章:

  • mc网站的建设大型网站开发
  • 给网站做推广一般花多少钱全国最大的外发加工网
  • linux 网站301江西seo推广方案
  • c2c电子商务网站定制开发wordpress html单页
  • 查询网站空间商自己做的网站如何放到微信
  • 现在网站开发哪个语言好月嫂公司网站建设构思
  • 腾讯云免费网站建设网站设计一级网页
  • 网站备案系统验证码出错的解决方案wordpress+论坛+注册
  • 代做毕设的网站先做网站先备案
  • 网站定制哪个好wordpress主题dux1.9
  • 怎么自己做网站地图网站建设弹窗代码
  • wordpress 作品集网站企业做网站建设的好处
  • 公司开发的网站健身网站开发项目总结
  • 怎样做游戏网站网站建设万首先金手指14
  • 英德建设局网站龙岩网上房地产网
  • wordpress vr网站电影网页设计尺寸
  • 做淘宝客新增网站推广怎样开一家公司
  • 企业网站有必要做吗?网站平均停留时间
  • 蘑菇街的网站建设凡科网站建设网页怎么建
  • 中国光大国际建设工程公司网站论坛是做网站还是app好
  • 地产集团网站建设高德是外国公司吗?
  • 天津市网站建站制作网站建设新报价图片欣赏
  • 怎么样在百度搜到自己的网站高端房产网站建设
  • 邯郸做移动网站多少钱ui设计好就业吗
  • 共享虚拟主机普惠版做网站产品推广包括哪些内容
  • 广州市网站建站免费咨询医生有问必答
  • app网站建设制作哪个网站可以做魔方图片
  • 教育培训网站建设方案模板下载网站文风
  • 电龙网站建设wordpress文章两端对齐
  • 做外单网站亚马逊免费的网站加速器