互联网上提供单一但有趣功能的API

互联网上确实有很多提供单一但有趣功能的 API,它们非常适合初学者进行 HTTP 请求的练习,或者作为你小项目中的创意来源。它们通常简单、免费,并且不需要复杂的认证(至少在低使用量下)。

以下是一些类似 hitokoto.cn 风格的,提供单一但有意思功能的接口:


一、文本/语录类

  1. ZenQuotes.io - 随机励志语录

    • 功能: 返回一句随机的励志或哲理语录。

    • API: https://zenquotes.io/api/random

    • 响应示例 (JSON):

      
      [
        {
          "q": "The only way to do great work is to love what you do.",
          "a": "Steve Jobs",
          "c": "52",
          "h": "<blockquote>&ldquo;The only way to do great work is to love what you do.&rdquo; &mdash; <em>Steve Jobs</em>"
        }
      ]
      
  2. Quotable - 随机名人名言

    • 功能: 返回一句随机的著名语录。

    • API: https://api.quotable.io/random

    • 响应示例 (JSON):

      
      {
        "_id": "60a169b598b94379ddd33e50",
        "content": "The best way to predict the future is to create it.",
        "author": "Peter Drucker",
        "tags": ["famous-quotes"],
        // ...
      }
      
  3. icanhazdadjoke.com - 随机“老爹笑话”

    • 功能: 返回一个冷幽默的笑话。

    • API: https://icanhazdadjoke.com/

    • 使用方式: 发送 GET 请求,并在请求头中添加 Accept: application/json 来获取 JSON 格式响应。

    • 响应示例 (JSON):

      
      {
        "id": "R7UfaahVfFd",
        "joke": "What do you call a fake noodle? An impasta.",
        "status": 200
      }
      
  4. Cat Facts API - 随机猫咪事实

    • 功能: 返回一个关于猫咪的随机事实。

    • API: https://catfact.ninja/fact

    • 响应示例 (JSON):

      
      {
        "fact": "Cats can make over 100 different sounds whereas dogs can only make 10.",
        "length": 68
      }
      

二、图像/娱乐类

  1. Lorem Picsum - 随机占位图

    • 功能: 提供指定尺寸的随机图片作为占位符,非常适合 UI 开发。

    • API: https://picsum.photos/200/300 (返回一张 200x300 的随机图片)

    • 使用方式: 直接在 image 控件的 src 中使用,或者通过 $http.download 下载。

    • 示例: https://picsum.photos/id/237/200/300 (指定 ID)

    • 示例: https://picsum.photos/seed/picsum/200/300 (基于种子,每次相同)

  2. Dog CEO - 随机狗狗图片

    • 功能: 返回一个随机狗狗图片的 URL。

    • API: https://dog.ceo/api/breeds/image/random

    • 响应示例 (JSON):

      
      {
        "message": "https://images.dog.ceo/breeds/hound-afghan/n02088094_1003.jpg",
        "status": "success"
      }
      
  3. Yes/No API - 随机 Yes/No 动图

    • 功能: 返回一个随机的 "yes", "no", 或 "maybe" 结果,通常配有 GIF 动图。

    • API: https://yesno.wtf/api

    • 响应示例 (JSON):

      
      {
        "answer": "yes",
        "forced": false,
        "image": "https://yesno.wtf/assets/yes/2.gif"
      }
      
  4. The Bored API - 随机活动建议

    • 功能: 当你感到无聊时,它会建议一个随机的活动。

    • API: https://www.boredapi.com/api/activity/

    • 响应示例 (JSON):

      
      {
        "activity": "Learn how to play a new instrument",
        "type": "education",
        "participants": 1,
        "price": 0.5,
        "link": "",
        "key": "2499692",
        "accessibility": 0.1
      }
      

三、实用小工具类

  1. IPify - 获取你的公共 IP 地址

    • 功能: 返回请求者的公共 IP 地址。

    • API: https://api.ipify.org?format=json (JSON 格式)

    • 响应示例 (JSON):

      
      {
        "ip": "192.168.1.100"
      }
      
    • 示例: https://api.ipify.org (纯文本格式)

  2. Numbers API - 关于数字的随机事实

    • 功能: 返回一个关于随机数字的数学、历史或年份事实。

    • API: http://numbersapi.com/random/math (随机数学事实)

    • API: http://numbersapi.com/random/trivia (随机趣闻事实)

    • API: http://numbersapi.com/random/year (随机年份事实)

    • 响应示例 (纯文本): "9 is the highest single-digit number in base 10."


注意事项:

  • API Key: 上述列表中的 API 大多是为开发者提供免费且无需 API Key 的公共接口,非常适合测试和学习。但在实际生产环境中,高频率使用可能需要注册并获取 API Key。

  • 速率限制 (Rate Limiting): 大多数免费公共 API 都会有请求频率限制,请在使用时遵守它们的规定,避免过于频繁的请求。

  • 稳定性: 免费公共 API 的稳定性和维护情况可能不如商业 API,它们可能会更改接口或停止服务。

  • 阅读文档: 每个 API 即使功能单一,也可能有不同的请求参数(例如指定类型、数量)和响应格式。在实际使用前,最好访问它们的官方网站阅读一下简短的文档。

希望这些有趣的 API 能为你的 JSBox 学习和创作带来更多灵感!