使用api接口进行调用(附案例,多种语言均可实现)

1 写在前面

        本篇文章做学习记录使用,文中若有不妥之处,欢迎批评和指正。因为曾打过有关比赛,使用到了api接口的调用的经验,综合比赛经验和学习经验,写下这篇文章。注意:当学会api接口调用后,会使开发变得更加容易。但应该不仅限于api接口的调用,同时也需要学习api接口的开发。这样才能不断精进。下面内容全是自己心得,没有像官方或者网上的话术,语言可能不华丽,烦请见谅。

2 API接口说明

2.1 什么是api接口

        我自己的理解(可能有误,啊哈哈哈哈)就是为了使各大开发者更快完成一个项目功能,api功能开发商提供一个调用地址,每次访问(调用),返回给开发者想要的信息。作为开发者,对于一些复杂的功能,直接采用接口调用方式访问,这样好像更快;对于提供者,编写出来的功能,是不想直接将代码提供给开发者的,所以就开发出了接口,提供给开发者,这样既方便也避免了背后代码的暴露。

2.2 api常见用途

        在大部分的开发上,api接口调用的运用是非常广泛的。例如我作为个人开发者,我开发的app或者是桌面应用程序上需要显示一个今日天气的功能,但是我不晓得这个功能背后代码怎么编写,怎么能实时将天气显示出来,这个时候api接口调用就起作用了,市面上会存在天气接口的提供商,只不过有些是付费调用,有些是免费调用。

        api接口调用技术已经很完善了,支持大部分语言。像阿里云、腾讯云、华为云提供的很多云上功能,都支持接口调用。比如像:短信验证、图像识别接口、AI大模型接口调用等。

2.3 api接口常见返回格式

        对于api接口的返回,常见格式就是json格式,不用我多说,相信大部分人都知道这个格式。当你每次调用后,会返回一串json数据过来。但是这串json数据,有大部分数据是你不需要的,你只需要其中的关键信息,这个时候就涉及到了json数据格式的解析。具体方法,在下文的案例说明,下面附上常见jaon返回的图片:

3 API接口调用测试工具

        我喜欢用apipost,能自动生成各种代码。也可以在线使用这个工具。Apipost-API 文档、设计、调试、自动化测试一体化协作平台https://www.apipost.cn/

4 案例 

4.1 案例1:调用AI大模型,与AI对话

        曾经在打比赛的时候使用过百度智能云模型,但是这里案例采用deepseek的模型调用。下面是具体的步骤。

4.1.1 步骤一

        先到deepseek的开发者平台充钱,它的调用非常便宜,为了学习和练手,1-5块钱都很合适。这里是他的网站:DeepSeek 开放平台。下面是该开放平台的界面展示。

4.1.2 步骤二

        进行充值后,然后获取自己的apikey,这个是调用里面的一个重要参数,是访问该api接口的鉴权。注意,这个apikey在第一次创建的时候能完整显示,后面就无法完整显示了。所以请务必复制保存。

4.1.3 步骤三

  • 查看他的开发者文档,当然你也可以看本教程来实现。但是一个好的开发习惯应该是要阅读官方给出的文档,这样才能形成自己的知识。注意官方文档的代码写法,这些都是值得学习的。
  • deepseek提供两种模型的调用,一个是R1模型(具备深度思考的模型),另一个是V3模型。本文采用的是R1模型。下图是两种模型的调用价格。

  • 官方给出了两种调用方式,一个是通过openai调用,另一个是通过网络请求的方式,在python语言中可以通过requests库进行实现。本文采用openai方式实现,配合自己的需求实现了获取建议功能,采用python语言,下面是代码示例。
from openai import OpenAI
def run_api(api_key, sensor_data):
    try:
        client = OpenAI(api_key=api_key, base_url="https://api.deepseek.com")
        # 执行 API 请求
        response = client.chat.completions.create(
            model="deepseek-chat",  # 你也可以替换成deepseek-reasoner模型(不含有深度思考的模型)
            messages=[
                {"role": "system", "content": "你是楼道消防智能管家,具备丰富的消防知识!"},  #赋予系统角色,定义系统的行为
                {"role": "user",
                 "content": f"我制作了基于物联网的楼道消防系统,通过相关的传感器获取了温湿度、烟雾浓度、一氧化碳浓度、火焰强度。"
                            f"其中温度的值为{sensor_data['temp']}°C, 湿度的值为{sensor_data['humi']}%RH, 烟雾浓度的值为{sensor_data['smoke']}ppm, "
                            f"一氧化碳浓度为{sensor_data['CO']}ppm, 火焰强度浓度为{sensor_data['fire']}%。请根据这些数据, 提供楼道消防的建议!"},
            ],#  # 赋予用户角色,并发起相关的对话
            max_tokens=4096,#  设置最大返回的token数
            temperature=1.6,#  这个值越大,结果越随机1-2间选择
            stream=False    #  是否开启流式返回,流式返回就是返回的结果是分段的,适合长文本的返回,会一下一下的通过json返回
        )
        # 返回结果
        return response.choices[0].message.content
    except Exception as e:
        # 捕获异常并返回错误信息
        return f"请求失败: {str(e)}"
# 示例调用
if __name__ == "__main__":
    # 你的 API 密钥
    api_key = "***********************"#  替换为你的API密钥
    # 示例传感器数据
    sensor_data = {
        'temp': 30,
        'humi': 50,
        'smoke': 20,
        'CO': 15,
        'fire': 5
    }
    # 调用函数并打印结果
    result = run_api(api_key, sensor_data)
    print(result)
  • 结果会以文本返回,注意不是json返回,如果需要json格式返回,可以尝试流式输出或者是网络请求的写法。返回结果展示如下。

4.2 案例2:调用天气接口,获得今日天气

4.2.1 步骤一

        选取天气平台的API提供商,这里随便在网上找了个网站,仅当学习使用。该接口也有详细的使用方法。天气预报-中国气象局免费API - 提供免费接口调用平台

4.2.2 步骤二

        开始调用,这里的调用我们采用apipost工具。该工具可以在线调用并且生成各种代码。

Apipost-API 文档、设计、调试、自动化测试一体化协作平台Apipost是集API设计、API调试、API文档、自动化测试为一体的API研发协同平台,支持grpc,http,websocket,socketio,socketjs类型接口调试,支持私有化部署。https://www.apipost.cn/

5 API调用集成案例示范

        我在打比赛的时候,将api接口调用天气的值集成到开发的app中,达到了今日天气的一个看板。下面是相关的一个展示。采用的api服务商是和风天气,下面有他们的网站,该api服务商可以免费的调用,非常不错,推荐使用。可以自己去摸索和风天气api的调用。控制台 | 和风天气https://console.qweather.com/home#/apps?lang=zh

        如果有不懂的,遇到问题的,可以私信我交流,相互讨论和学习。api调用方式多种多样,可以通过各种语言进行实现。欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值