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

    文章

    7640

    浏览量

    148512
  • API
    API
    +关注

    关注

    2

    文章

    1383

    浏览量

    60994
收藏 人收藏

    评论

    相关推荐

    请问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 148次阅读

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

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

    api网关 kong 教程入门

    为什么使用API-Gateway 方便客户端维护– 每个请求方不用管理多个api url,统一访问api-gateway即可 接口重构时调用方不须了解
    的头像 发表于 11-10 11:39 279次阅读
    <b class='flag-5'>api</b>网关 kong 教程入门

    如何做一个占空比,频率,幅值均可调的方波?

    如何做一个占空比,频率,幅值均可调的方波
    发表于 10-16 07:13

    OpenHarmony 应用开发SDK、API 与基础工具

    ArkTS 对象的能力,使用类 Node 的 N-API 接口命名。开发者使用 C/C++开发业务,通过 N-API 接口实现跨语言调用,方便开发者使用高性能 C 语言能力。开发者开
    发表于 09-19 15:45

    基于应用程序编程接口API)的自动化测试(上)

    本文系统介绍了应用程序编程接口API)的概念及其在软件开发中的作用与重要性,重点分享自动化API测试的发展历程与测试对象。
    的头像 发表于 09-01 11:17 379次阅读

    基于Java的接口快速开发框架——magic-api

    magic-api 是一个基于Java的接口快速开发框架,编写接口将通过magic-api提供的UI界面完成,自动映射为HTTP接口,无需定
    发表于 07-19 11:42 444次阅读
    基于Java的<b class='flag-5'>接口</b>快速开发框架——magic-<b class='flag-5'>api</b>

    常见的api接口漏洞有哪些

    错误消息可帮助 API 使用者排查其与 API 的交互问题,并允许 API 提供者了解其应用程序的问题。但是,它也可以揭示有关资源、用户和 API 底层体系结构(例如 Web 服务器或
    发表于 07-17 16:29 178次阅读

    用freertos在S32K314中做一个项目,是否有任何API可以重启设备?

    我正在用 freertos 在 S32K314 中做一个项目。在某些情况下,我们需要重启设备。是否有任何 API 可以重启设备?或者我该如何实施?
    发表于 06-05 08:44

    调用第三方 API 接口会遇到哪些问题

    了 11、接口时好时坏 12、文档和接口逻辑不一致 13、欠费了   前言 在实际工作中,我们经常需要在项目中调用第三方API接口,获取数据,或者上报数据,进行数据交换和通信。 那么,
    的头像 发表于 05-29 14:31 934次阅读

    如何做USB仿真两CPU的?

    请问下是如何做USB仿真两CPU的? 编译从核的工程, 它的固件怎么就能直接写入到主核的工程里去的?
    发表于 05-26 06:10

    api接口怎么使用

    本文就从API接口的维度,浅析API的概念以及为什么要了解它 一、API的概念 API,官方定义为应用程序编程
    的头像 发表于 05-24 14:44 987次阅读

    Api接口安全测试方法大全(附一键化扫描工具)

    通常在网站的通讯中,很多会调用api接口去方便更多信息的管理与调用,但是当使用某些api时,在开发人员未对api接口做出访问策略限制或其他的
    的头像 发表于 05-22 15:32 3792次阅读
    <b class='flag-5'>Api</b><b class='flag-5'>接口</b>安全测试方法大全(附一键化扫描工具)