<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>API on 老张开工了</title>
    <link>/api/</link>
    <description>Recent content in API on 老张开工了</description>
    <generator>Hugo</generator>
    <language>zh-cn</language>
    <lastBuildDate>Fri, 29 May 2026 00:00:00 +0000</lastBuildDate>
    <atom:link href="/api/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>网络请求与 API 调用</title>
      <link>/posts/2026/05/network-requests/</link>
      <pubDate>Fri, 29 May 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/05/network-requests/</guid>
      <description>当今的软件世界是互联的。你的程序需要获取天气数据、调用 ChatGPT API、从 GitHub 拉取仓库信息、向飞书群发送通知……所有这些都离不开网络请求。&#xA;Python 的标准库提供了 urllib.request，但社区几乎都选择更人性化的 requests 库。本章从基础到实战，带你掌握 Python 中的 HTTP 通信。&#xA;HTTP 基础回顾 在你写代码之前，了解 HTTP 的基本概念会很有帮助：&#xA;概念 说明 URL 统一资源定位符，标识资源的位置 HTTP 方法 GET（获取）、POST（创建）、PUT（全量更新）、PATCH（部分更新）、DELETE（删除） 请求头 携带元信息，如认证 Token、内容类型 请求体 POST/PUT 时发送的数据 状态码 200（成功）、201（创建成功）、400（请求错误）、401（未认证）、404（未找到）、500（服务器错误） 响应体 服务器返回的数据，通常为 JSON 格式 urllib.request：内置方案 Python 标准库自带的 HTTP 客户端，无需安装：&#xA;from urllib.request import Request, urlopen from urllib.parse import urlencode import json # GET 请求 response = urlopen(&amp;#34;https://httpbin.org/get&amp;#34;) print(response.status) # 200 print(response.read().decode()) # JSON 格式的响应内容 # POST 请求 data = urlencode({&amp;#34;name&amp;#34;: &amp;#34;Alice&amp;#34;, &amp;#34;age&amp;#34;: 30}).</description>
    </item>
    <item>
      <title>数据抽取（Extract）：数据源与连接</title>
      <link>/posts/2026/04/etl-extract/</link>
      <pubDate>Fri, 03 Apr 2026 00:00:00 +0000</pubDate>
      <guid>/posts/2026/04/etl-extract/</guid>
      <description>数据抽取概述 数据抽取是 ETL 流程的第一个环节，也是后续所有工作的基础。如果把 ETL 比作烹饪，抽取就是&amp;quot;采购食材&amp;quot;——食材的质量和新鲜度直接决定了最终菜品的好坏。&#xA;在实际工作中，数据抽取面临的挑战往往比想象中大：源系统的类型五花八门、数据量可能非常庞大、抽取过程不能影响业务系统的正常运行、网络不稳定导致连接中断等。因此，设计一个健壮的数据抽取方案是整个 ETL 工程的起点。&#xA;数据源的类型 现代数据架构中的数据源可以大致归为以下几类：&#xA;关系型数据库 关系型数据库是最常见的数据源。企业核心业务数据通常存储在 MySQL、PostgreSQL、Oracle、SQL Server 等系统中。从关系型数据库抽取数据通常有几种方式：直接执行 SELECT 查询、使用数据库的导出工具、通过日志复制（CDC）等。&#xA;文件系统 文件是另一种常见的数据载体。CSV 和 JSON 是最通用的交换格式，几乎任何系统都能读写。在大数据生态中，Parquet 和 Avro 这类列式存储格式越来越流行，它们具有更好的压缩率和查询性能。&#xA;API 接口 许多 SaaS 平台（如 Salesforce、HubSpot、Google Analytics）只通过 API 暴露数据。RESTful API 是目前的主流协议，GraphQL 也在逐渐普及。API 抽取通常需要考虑认证、限流、分页等问题。&#xA;消息队列和流数据 Kafka、RabbitMQ、AWS Kinesis 等消息系统承载着实时数据流。从这类系统抽取数据时，通常使用消费者模式持续订阅数据。这类场景往往偏向实时或准实时处理。&#xA;数据源类型 典型例子 抽取方式 常见挑战 关系型数据库 MySQL, PostgreSQL, Oracle JDBC/ODBC 查询、导出 dump 大表全量扫描影响性能 文件 CSV, JSON, Parquet, Avro 文件读取、FTP/S3 下载 文件编码、格式不一致 API REST, GraphQL, SOAP HTTP 请求 限流、认证、分页 消息队列 Kafka, RabbitMQ, Kinesis Consumer 订阅 消息顺序、重复消费 从关系型数据库抽取数据 JDBC 方式（Python 示例） JDBC（Java Database Connectivity）是连接数据库的标准接口。在 Python 中，我们可以使用数据库驱动库来实现类似的功能。</description>
    </item>
  </channel>
</rss>
