0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何做一个api接口?

OBEason 来源:jf_88563726 作者:jf_88563726 2023-05-26 11:37 次阅读

程序员是公司里的技术岗位,是产品经理最亲密的伙伴。但是程序员可以理解产品经理的工作,产品经理却不一定理解程序员的工作,所以经常被无良程序员欺骗。从API接口这个维度,分析API的概念以及为什么要了解它,避免PM们在实际工作中对代码技术一无所知。

在日常工作中,产品经理负责推动项目进展。当他们与程序员对接时,问完成这个功能需要多少天,程序员给出了五天的回答。虽然你的预期时间只有三天,但是你除了相信他,按照承诺给他五天时间之外,也无能为力,最终导致项目的拖延。

你不知道这个函数有多少代码,程序员的工作量有多大。他利用你的无知故意拖延你的项目进度,你是最后一个背黑锅的。

程序员是公司里的终极技术岗位。他能理解我们的工作,但我们很难理解他们。为了防止PM在实际工作中受到无良程序员的伤害,本文从API接口这个维度分析了API的概念以及为什么要理解它,从而避免PM在实际工作中对代码技术的无知。

一、API的概念

API,官方定义为应用编程接口。它指的是一些预定义的接口,用来提供应用程序和开发人员基于某种软件或硬件可以访问的一组例程,而不必访问源代码或了解内部工作机制的细节。

二、为什么要理解API文档?

既然API这么复杂,不属于PM的工作范围,为什么还需要我们费尽心思去理解呢?我们的目的是什么。

1.定义所需的接口服务。

API有很多种,最基础的就是产品最需要的,比如短信API、地图API、语音API等。如果我们的产品涉及到这个功能,就必须了解这个API,这样才能在需求设计阶段考虑的更全面。

2.掌握项目开发的工作量,合理安排计划。

说白了就是防止被程序员骗。当你走过去的时候,你发现程序员正在勤奋地工作。不好意思,人家是外包,就是欺负你看不懂代码。你生气了吗?但是,如果你知道接口的难度和工作量,并且明确他需要多长时间才能交给你,项目就不会被耽误,也更有利于项目进程的进度。

3.联合调试测试,识别项目风险点。

一些关键接口,那些数据量大,需要大数据压力测量的接口,必须通过连接测试,测量其更大流量,优化或设置限制,防止系统崩溃。

4.促进项目对接

如果PM懂一点技术,就不会开明显做不到的玩笑,但还是要程序员来做。从这个角度来说,也更有利于团队沟通,更有利于PM和程序员之间的和谐,避免矛盾,不至于打翻友谊之舟。了解API可以让PM对技术有更深刻的理解,更好的衡量开发工作量,制定功能内容。

三。举例说明API的重要性

优点:

开发者A开发了软件A,而开发者B正在开发软件B,A想利用B的一些成果或功能来辅助开发软件B,但不想完全输入软件A。我该怎么办?于是A把软件打包成一个函数,放在B的软件里。这个函数就是API。

如果没有API,B必须经历软件A的全过程,这需要花费大量的时间和精力,但如果是接口来访问一些功能,就简单方便了。想用就用,想拔就拔。

有一杯密封的果汁叫数据库;果汁上面有一根吸管,叫API。想喝杯子里的果汁,因为是密封的,只能靠吸管插入,不然就喝不到果汁了。

在这个故事里,你属于某个系统。要想获得果汁,必须通过一根吸管来实现,也就是一个接口,API,而这个API是数据库中唯一的API。这样,API就是一个提升项目功能和产品价值的辅助工具。

缺点:

由于API依赖于第三方软件,访问方在使用其他软件包的功能的同时,为自己插入了一个监视器,存在惠友友资源网数据泄露给第三方的危险。所以如果是公司的核心功能,更好使用内部API。

四。总结:万物皆有联系。

可能大家看了美国科幻大片,把程序员想象成了高智商的黑客。但现实是,大多数情况下,他们只负责修复bug,真正的源代码只是在网上复制粘贴而已。所以不要被他的外表所迷惑,PM的应该知道他的优优资源网的工作量,只需要在团队中给出明确的指令来管理项目的进度,大致了解程序员的工作内容,这样你就可以管理对接了。

最后,我想说,在产品行业,一切都是相通的,PM不必质疑自己的工作,也不必自卑。如果程序员是科学家,那么PM就是一个有友资源网的哲学家,只负责改造自然环境和人类社会的差异。其思维逻辑类似,程序员其实就是PM知识的技术流。

五、API的实际应用

请求示例:前往测试

Curl

PHP

PHPsdk

JAVA

C#

Python

import java.io.BufferedReader;

import java.io.IOException;

import java.io.InputStream;

import java.io.InputStreamReader;

import java.io.Reader;

import java.net.URL;

import java.nio.charset.Charset;

import org.json.JSONException;

import org.json.JSONObject;

import java.io.PrintWriter;

import java.net.URLConnection;

public class Example {

private static String readAll(Reader rd) throws IOException {

StringBuilder sb = new StringBuilder();

int cp;

while ((cp = rd.read()) != -1) {

sb.append((char) cp);

}

return sb.toString();

}

public static JSONObject postRequestFromUrl(String url, String body) throws IOException, JSONException {

URL realUrl = new URL(url);

URLConnection conn = realUrl.openConnection();

conn.setDoOutput(true);

conn.setDoInput(true);

PrintWriter out = new PrintWriter(conn.getOutputStream());

out.print(body);

out.flush();

InputStream instream = conn.getInputStream();

try {

BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));

String jsonText = readAll(rd);

JSONObject json = new JSONObject(jsonText);

return json;

} finally {

instream.close();

}

}

public static JSONObject getRequestFromUrl(String url) throws IOException, JSONException {

URL realUrl = new URL(url);

URLConnection conn = realUrl.openConnection();

InputStream instream = conn.getInputStream();

try {

BufferedReader rd = new BufferedReader(new InputStreamReader(instream, Charset.forName("UTF-8")));

String jsonText = readAll(rd);

JSONObject json = new JSONObject(jsonText);

return json;

} finally {

instream.close();

}

}

public static void main(String[] args) throws IOException, JSONException {

// 请求示例 url 默认请求参数已经URL编码处理

String url = "https://api-gw.onebound.cn/taobao/item_get/?key=<您自己的apiKey>&secret=<您自己的apiSecret>&num_iid=652874751412&is_promotion=1";

JSONObject json = getRequestFromUrl(url);

System.out.println(json.toString());

}

}


审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 接口
    +关注

    关注

    33

    文章

    8474

    浏览量

    150772
  • API
    API
    +关注

    关注

    2

    文章

    1481

    浏览量

    61776
收藏 人收藏

    评论

    相关推荐

    api驱动的云服务是什么意思?

    API驱动的云服务是指利用API技术来驱动和提供云服务的模式。在这种模式下,云服务提供商会公开系列的API接口,允许开发者或应用程序通过调
    的头像 发表于 11-14 10:06 51次阅读

    如何做一个hpm6750evk2的bootloader?

    我正在做一个hpm6750evk2的bootloader。设计很简单,boot工程代码只做跳转到1M后的APP工程代码处,APP工程就是做的点灯的程序而已,boot、APP工程都是跑
    发表于 10-23 19:01

    用LM339做一个迟滞比较器,必须接正电源和负电源,输出接口还得有上拉电阻,输出的高低电平如何计算?

    用LM339做一个迟滞比较器,将正弦波信号转换成方波信号。必须接正电源和
    发表于 09-23 06:35

    请问音频信号如何做静音检测?

    具有5V偏置的音频信号,音频交流分量大小大概1、2V。有按键可以控制静音,那么如何做一个检测电路,检测静音呢?
    发表于 09-20 09:04

    如何使用合宙的DTU+业务云平台,做一个温湿度传感器数据采集项目?

    使用合宙的DTU+业务云平台,做一个温湿度传感器数据采集项目,超详细教程。
    的头像 发表于 09-18 11:11 345次阅读
    如何使用合宙的DTU+业务云平台,<b class='flag-5'>做一个</b>温湿度传感器数据采集项目?

    鸿蒙开发接口公共事件与通知:【FFI能力】 N-API在Android、iOS平台应用的使用指导

    N-API接口可以实现ArkTS/TS/JS与C/C++(Native)之间的交互,ArkUI-X中支持的N-API接口情况和使用场景请见[FFI能力(N-
    的头像 发表于 05-25 16:33 1823次阅读
    鸿蒙开发<b class='flag-5'>接口</b>公共事件与通知:【FFI能力】 N-<b class='flag-5'>API</b>在Android、iOS平台应用的使用指导

    鸿蒙开发接口公共事件与通知:【FFI能力(Node-API)】

    Node-API是封装底层JavaScript运行时能力的套Native接口。OpenHarmony的N-API组件对Node-API
    的头像 发表于 05-21 16:38 901次阅读
    鸿蒙开发<b class='flag-5'>接口</b>公共事件与通知:【FFI能力(Node-<b class='flag-5'>API</b>)】

    请问STM32F103C8如何做成USB转SPI的接口芯片?

    STM32F103C8如何做成USB转SPI的接口芯片?
    发表于 04-23 08:01

    API接口,我能调取哪些数据?

    数据API接口
    蓝蜂物联网
    发布于 :2024年02月04日 17:43:18

    快递预约上门取件API免费接口

    并发 接口地址 api.kdniao.com/api/OOrderS… 支持情况 1.支持的快递公司:顺丰速运、中通快递、圆通速递、韵达速递、优速快递、EMS、宅急送、远成快运(YCWL)、天地华宇、运东西网、品骏快递、承诺达、
    的头像 发表于 01-24 14:43 338次阅读

    如何用小安派-Eyes-S1做一个电子木鱼?

    2024年的第篇教程来了,本篇学习如何添加LVGL事件,并制作完成电子木鱼(小美苦苦哀求,我略微出手而已)。祝大家2024积德累功,心想事成!接下来看看如何用小安派-Eyes-S1做一个
    的头像 发表于 01-13 15:18 942次阅读
    如何用小安派-Eyes-S1<b class='flag-5'>做一个</b>电子木鱼?

    DP接口和HDMI接口的优缺点 如何做出明智选择?

    DP接口和HDMI接口的优缺点 如何做出明智选择? DP接口和HDMI接口是用于连接计算机和外部设备的
    的头像 发表于 12-11 13:38 2312次阅读

    如何做一个车载吸尘器PCBA方案

    车载吸尘器PCBA方案,是为满足汽车内部清洁需求而设计的种便携式吸尘器方案。随着人们对汽车内部环境卫生的要求日益提高,传统的手动清洁方式已经无法满足需求。因此,研发出种便携式吸尘器方案,成为
    的头像 发表于 11-28 16:10 615次阅读

    RGMII接口案例:二设备共享PHY

    最近项目中,FPGA通过多个RGMII接口与其他设备通信,在通信的过程中,有RGMII接口对端设备始终无法驱动,最后通过共享
    的头像 发表于 11-27 16:47 8031次阅读
    RGMII<b class='flag-5'>接口</b>案例:二<b class='flag-5'>个</b>设备共享<b class='flag-5'>一</b><b class='flag-5'>个</b>PHY

    如何通过PWM做一个呼吸灯

    接下来我们就来试试,通过PWM让LED实现不同亮度的变化,也就是我们常见的呼吸灯了。 硬件接线 还是用这个LED灯,端连接电阻,再到5V高电平的引脚,另外
    的头像 发表于 11-27 11:40 844次阅读
    如何通过PWM<b class='flag-5'>做一个</b>呼吸灯