如何调用api接口
阿里云国内75折 回扣 微信号:monov8 |
阿里云国际,腾讯云国际,低至75折。AWS 93折 免费开户实名账号 代冲值 优惠多多 微信号:monov8 飞机:@monov6 |
程序员是公司里的技术岗位是产品经理最亲密的伙伴。但是程序员可以理解产品经理的工作产品经理却不一定理解程序员的工作所以经常被无良程序员欺骗。从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正在开发软件BA想利用B的一些成果或功能来辅助开发软件B但不想完全输入软件A。我该怎么办于是A把软件打包成一个函数放在B的软件里。这个函数就是API。
如果没有APIB必须经历软件A的全过程这需要花费大量的时间和精力但如果是接口来访问一些功能就简单方便了。想用就用想拔就拔。
有一杯密封的果汁叫数据库果汁上面有一根吸管叫API。想喝杯子里的果汁因为是密封的只能靠吸管插入不然就喝不到果汁了。
在这个故事里你属于某个系统。要想获得果汁必须通过一根吸管来实现也就是一个接口API而这个API是数据库中唯一的API。这样API就是一个提升项目功能和产品价值的辅助工具。
缺点:
由于API依赖于第三方软件访问方在使用其他软件包的功能的同时为自己插入了一个监视器存在惠友友资源网数据泄露给第三方的危险。所以如果是公司的核心功能更好使用内部API。
四。总结:万物皆有联系。
可能大家看了美国科幻大片把程序员想象成了高智商的黑客。但现实是大多数情况下他们只负责修复bug真正的源代码只是在网上复制粘贴而已。所以不要被他的外表所迷惑PM的应该知道他的优优资源网的工作量只需要在团队中给出明确的指令来管理项目的进度大致了解程序员的工作内容这样你就可以管理对接了。
最后我想说在产品行业一切都是相通的PM不必质疑自己的工作也不必自卑。如果程序员是科学家那么PM就是一个有友资源网的哲学家只负责改造自然环境和人类社会的差异。其思维逻辑类似程序员其实就是PM知识的技术流。
五、API的实际应用
请求示例前往测试
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()); } }