精华内容
下载资源
问答
  • go对接接口

    千次阅读 2020-01-18 17:11:02
    前言:这是第一次使用go语言对接接口,记录一下碰到了那些知识。接口需求文档只有两个接口,一个是获取token,在header中使用;另一个是添加订单接口;大致意思就是从我这的系统中读取数据,到,对方的系统中。 ...

    前言:这是第一次使用go语言对接接口,记录一下碰到了那些知识。接口需求文档只有两个接口,一个是获取token,在header中使用;另一个是添加订单接口;大致意思就是从我这的系统中读取数据,到,对方的系统中。

    相关知识点

    • 第一感觉,结构体很重要,很灵活,也很难,用起来有点生涩
    • go mod一个好用的包版本管理程序,可以让你的go项目放在电脑的任何文件夹下,从gopath/src下解放出来
    • sqlx的使用
    • 结构体的设计,映射
    • 在go中使用json struct做映射
    • 结构体中对字段可能为 null的处理,看数据类型的源码,有哪些方法,函数
    • 结构体首字母大写,进行json映射
    • for range的使用,切片的赋值,指针切片,结构体对象赋值
    • 时间格式相互转换
    • 字符串转数组,数组去空值
    • if 与 switch
    • go 结构体、数组、集合/字典和json字符串的相互转换
    • go定时任务详解

    记一下步骤

    1. 先使用postman验证对面接口没有问题,测试越全面越好,包括那些必传字段,如果传空/空字符串会怎样,这样做的原因:可能我方数据库有些错误数据,或者正确但是奇怪的数据
    2. 创建go项目,go开发不需要操心本地和服务器上包的数量问题,放心好了,服务器上的环境绝对比你本地的包多,比你本地全。
    3. 使用go连接个数据库,这里使用sqlx包
    4. 连接数据库的代码成功后,移入init()初始化方法中
    5. 开始测试获取token接口,涉及到了go怎么模拟get/post,查找到了http包
    6. 获取token成功后,因为需要token值,所以获取token方法给了返回值,放入init()初始化方法中,这样就可以做到下面的如果有请求对方的接口,就可以获取token变量
    7. 获取列表/多条数据,考虑结构体 属性,类型,映射
    8. 对需要额外处理的字段进行处理
    9. 封装对方 添加订单接口需要的参数样子,同样需要一个结构体
    10. 进行post数据传输–带有头部参数的复杂的post请求
    11. 根据返回结果,如果成功,修改我方系统数据库中数据表的推送标志字段
    12. 优化:添加计数器,对推送数据,和推送成功数据,做一个有个的提示打印输出
    13. 优化:添加定时器,当第一次将历史数据推送结束后,每一小时执行一次,从而达到实时(延迟)的效果

    相关小语法

    • 如何使用go进行sql的in查询
      //注意下面这些类型,如果是字符串切片就不用转类型了
      awesome_id_list := []int{3,5,8}
      var str string
      for _, value := range awesome_id_list {
          str += strconv.Itoa(value) + ","
      }
      query := "SELECT * FROM awesome_table WHERE id IN (" + str[:len(str)-1] + ")"
      
    • 加上一个定时器,达到实时推送的效果;定时器也就是个for循环,周期执行;为了方便,我们把原来的主要函数拿出来,放在一个方法里,main方法放个for就行了,这样代码既清晰又优美了一点
      示例:start就是主要程序部分,5秒执行一次
    /**
    每一个小时循环执行
    */
    func main() {
    	log.Println("**************main*************")
    	//ticker := time.NewTicker(time.Hour*1)
    	ticker := time.NewTicker(time.Second*5)
    	for{
    		Start()
    		<-ticker.C
    	}
    }
    
    func Start() {
    	//执行方法a
    	//执行方法b
    	/执行。。。
    	//结束
    }
    
    • go发送post请求,带有数据参数;注意数据类型
    /**
    带有头部参数的复杂的post请求
    */
    func httpPost(data []byte) (res Return) {
    	client := &http.Client{}
    
    	req, err := http.NewRequest("post", "请求接口url", bytes.NewBuffer(data))
    	if err != nil {
    		fmt.Println("there is httpPost,occur error", err)
    		return
    	}
    
    
    	defer req.Body.Close()
    
    	req.Header.Add("Content-Type", "application/json")
    	req.Header.Add("authorization", token.Token)
    
    	resp, err := client.Do(req)
    	body, err := ioutil.ReadAll(resp.Body)
    	if err != nil {
    		fmt.Println("there is httpPost,occur error", err)
    		return
    	}
    	//log.Println(string(body))
    	json.Unmarshal([]byte(body), &res)
    	return res
    }
    
    展开全文
  • 前端如何对接接口

    万次阅读 多人点赞 2019-11-07 12:04:52
    作为一名前端工程师,不能只会写静态页面,还要会对接后端的接口。 1.把地址改为后端工程师的电脑地址 在webpack.base.config.js中把测试地址改成后端地址 proxy: { '/aaa': { //识别url的第一个路径来判断 //...

    作为一名前端工程师,不能只会写静态页面,还要会对接后端的接口。

    1.把地址改为后端工程师的电脑地址

    webpack.base.config.js中把测试地址改成后端地址

    proxy: {
                '/aaa': {        //识别url的第一个路径来判断
                    //后端地址
                    target: 'http://192.168.232.99:8080',
                    host:'http://192.168.232.99:8080',
                    //测试地址
                    // target: 'http://192.168.71.134:8081',
                    // host:'http://192.168.71.134:8081',
                    // secure: false,
                    changeOrigin: true
                }
            }

    2.登录常用的接口地址

    http://192.168.232.99:8080/dizhi.html#/
    

    3.输入用户名和密码,查看对应的接口,输入信息

    这时可以查看接口返回的数据格式

    4.然后把这串json数据复制黏贴到json.cn

    5.调数据,查看数据是否获取到有两种方法

    方法一:是console.log(data);

    方法二:是debugger,打开控制台的network查看返回的数据;

    我比较倾向于用第二种方法,比较直观。

                                type: 'post',
                                url: '/aaa/system/user/getUserRoleList.do',
                                data: {user_id:this.userId},              //直接传入data
                                
                                success: function (data) {
                                 //查看数据是否获取到
                                 //方法一
                                 console.log(data);
                                 //方法二
                                 debugger;
    
                                
                                 }

    6.处理数据逻辑;

     

    展开全文
  • 对接接口流程

    千次阅读 2018-06-20 14:36:06
    查看接口文档 主要看路径及参数 写API //删除课堂房间 @url('/live/room/delete')//路径 @get getDelete(){}//get获取 写方法 getDelete(item) { this.$confirm('删除课程将不能恢复', '删除课程', { ...

    查看接口文档

    这里写图片描述
    主要看路径及参数

    写API

    //删除课堂房间
    @url('/live/room/delete')//路径
    @get
    getDelete(){}//get获取
    

    写方法

    getDelete(item) {
          this.$confirm('删除课程将不能恢复', '删除课程', {
            confirmButtonText: '确认',
            cancelButtonText: '取消',
          }).then(async () => {
            let params = {
              roomId: item.id
            }
            let resData = await LiveApi.getDelete(params)
            this.$message({type: 'success', message: '删除成功!'});
            this.getCourseList()
          })
        }
    

    写触发事件

     <img src="static/img/video/delete.png" alt="" class="delete" @click="getDelete(item)"/>
    

    传参查看API文档相应结果

    这里写图片描述

    展开全文
  • 免费物流轨迹查询 对接接口

    千次阅读 2020-04-15 18:25:02
    物流轨迹查询 对接接口物流轨迹查询 对接接口 物流轨迹查询 对接接口 功能说明 物流轨迹查询-使用的物流单号和快递单号即可实现查询物流信息。 接口规则 (1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/...

    物流轨迹查询 对接接口

    功能说明
    物流轨迹查询-使用的物流单号和快递单号即可实现查询物流信息。
    接口规则
    (1)、查询接口支持按照运单号查询(单个查询,并发不超过10个/S)。
    (2)、指定的物流运单号选择相应的快递公司编码,格式不对或则编码错误都会返失败的信息。如EMS物流单号应选择快递公司编码(EMS)
    (3)、返回的物流跟踪信息按照发生的时间升序排列。
    (4)、接口指令1002。
    (5)、请求地址:http://api.kdniao.cc/Ebusiness/EbusinessOrderHandle.aspx
    (6)、接口秘钥申请:快递鸟官网

      **这是一个winfrom查询物流轨迹的demo**
    

    在这里插入图片描述
    在这里插入图片描述

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;
    using System.Collections;
    using Newtonsoft.Json;
    using System.Threading;
    using KdGoldAPI;
    
    namespace 快递查询
    {
        public partial class Form1 : Form
        {
            Hashtable table;      
            StringBuilder sb;
            public Form1()
            {
                InitializeComponent();
            }
    
            private void Form1_Load(object sender, EventArgs e)
            {
                //KdApiSearchDemo demo = new KdApiSearchDemo();
                //demo.getOrderTracesByJson();
                table = new Hashtable();
                sb = new StringBuilder();
                     
                table.Add("顺丰速运", "SF");
                table.Add("百世快递", "HTKY");
                table.Add("中通快递", "ZTO");
                table.Add("申通快递", "STO");
                table.Add("圆通速递", "YTO");
                table.Add("韵达速递", "YD");
                table.Add("邮政快递包裹", "YZPY");
                table.Add("EMS", "EMS");
                table.Add("天天快递", "HHTT");
                table.Add("京东快递", "JD");
                table.Add("优速快递", "UC");
                table.Add("德邦快递", "DBL");
                table.Add("宅急送", "ZJS");
    
            }     
            private void button1_Click(object sender, EventArgs e)
            {
                KdApiSearchDemo demo = new KdApiSearchDemo();
                Dictionary<string, string> keyValuePairs = demo.getOrderTracesByJson(table[comboBox1.Text].ToString(), textBox1.Text);
                
                if (textBox1.Text != "" && comboBox1.Text != "") {
                    string temp = this.Text;
                     this.Text = "查询中...";
                    string result = Http.get("http://sandboxapi.kdniao.com:8080/kdniaosandbox/gateway/exterfaceInvoke.json?RequestData=" + keyValuePairs["RequestData"] + "&EBusinessID="+ keyValuePairs["EBusinessID"] + "&RequestType=1002&DataSign="+ keyValuePairs["DataSign"] + "&DataType=2");
                    //result == null 代表网络异常
                 
                    if (result == null) {
                        MessageBox.Show("网络异常", "提示");
                        this.Text = temp;
                        return;
                    }
                    //将Json数据反序列化
                    JsonParser jp = (JsonParser)JsonConvert.DeserializeObject<JsonParser>(result);
                    List<Traces> list = jp.Traces;
                    list = jp.Traces;
                    sb.Remove(0,sb.Length);
                    //jp.message != ""代表查询失败
                    if (jp.Reason != ""&& jp.Reason!=null)
                    {
                        MessageBox.Show(jp.Reason, "提示");
                        this.Text = temp;
                        return;
                    }
                    foreach(Traces data in list){
                        sb.Append(data.AcceptTime + "\t");
                        sb.Append(data.AcceptStation + "\r\n\r\n");
                    }
                    textBox2.Text = sb.ToString();
                    this.Text = temp ;
                }else{
                    MessageBox.Show("快递单号和快递公司都不能为空", "提示");
                }
            }
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Net;
    using System.IO;
    namespace 快递查询
    {
        class Http
        {
            public static string get(string url)
            {
                string result=null;
                Stream stream;
                StreamReader reader=null;
                WebClient clinet = new WebClient();
                try
                {
                    //Encoding enc = Encoding.GetEncoding("UTF-8");
                    //Byte[] pageData = clinet.DownloadData(url);
                    //result = enc.GetString(pageData);
    
                    stream = clinet.OpenRead(url);
                    reader = new StreamReader(stream, Encoding.UTF8);
                    result = reader.ReadToEnd();
                }
                 catch(Exception ex)
                {
                    
                }
                finally {
                    try
                    {
                        reader.Close();
                    }
                    catch { }
                }
                return result;
            }
        }
    }
    
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using Newtonsoft.Json; 
    
    namespace 快递查询
    {
       public class JsonParser
        {
           public int State;
            //public int errCode;
            //public string message;
            //public string html;
            //public int mailTo;
            //public string tel;
            //public string expTextName;
            //public List<Data> data;
            public string EBusinessID;
            public string ShipperCode;
            public string LogisticCode;
            public string Reason;
            public List<Traces> Traces;
        }
        public class Traces
        {
           public string AcceptTime;
           public string AcceptStation;
           public string Remark;
        }
    }
    
    

    KdApiSearchDemo可以去官网下载

    展开全文
  • 后台对接接口

    千次阅读 2017-01-13 14:17:28
    try { response.setCharacterEncoding("GBK"); String url ="http://10.171.****2/c***/b**/Em**d?tophone="+phone+"&message="+res  URL url = new URL(urls+"?tophone="+phone+"&message="+"您的验证码是:
  • 接口对接

    千次阅读 2019-06-25 20:44:38
    接口对接 1. 中间库 优点: 简单,数据查询、处理起来都比较的简单 通过对表的权限控制,可以明确与用户交互了哪些内容,便于问题定位。如控制用户只能对表执行insert或select操作,写入到数据表中的数据都是该用户...
  • 中的res是什么意思? res这个参数可以理解为一个Object。 res.data指服务器返回的内容。res参数还有其他的属性,比如statusCode(指开发者服务器返回的 HTTP 状态码),还有header(指开发者服务器返回的 ...
  • 支付宝接口对接

    千次阅读 2017-04-15 20:29:21
     首先我们要清楚了解自己的平台需要什么样的对接接口, 因为支付宝的对接接口有3种,根据不同用户的需求不同,产品的业务流程不同, 而产生了3种接口。 第一种 担保交易 第二种 即时到账 第三种 双功能  他们的...
  • 对接支付宝支付接口开发详细步骤

    万次阅读 多人点赞 2017-08-07 10:25:28
    对接支付宝支付接口,官方文档已经写的很清楚了,但是也有很多像我一样的小白,第一次对接支付宝支付接口,会有些迷茫,所以我在此写下这篇文章,给我和我一样的同学,一点思路吧。 第一步:(先要在支付宝进行操做...
  • webService-对接webService接口

    千次阅读 2019-12-04 20:42:31
    最近做机场项目,对接一个webService接口,以前从来没做过类似的对接的,就记录一次,给自己一次学习的机会 http://xxxxxxxx:7190/esb/proxy/ws/TOMS_FWZXCLSJ/capairport/ws/gaugeWebService?wsdl 首先对方只...
  • 对接接口需要注意的事项

    千次阅读 2020-07-31 19:13:55
    1,在设计接口前一定要把相关逻辑梳理清楚,不论是对方,还是自己 逻辑都不清楚写出来的接口文档一定有问题,逻辑复杂的话建议画下时序图或流程图征得双方的认可 2,形成良好的接口文档规范 一般的接口文档都要有...
  • java对接金蝶接口

    千次阅读 2020-04-29 16:49:05
    ​ 首先吐槽一下金蝶的api文档,由于金蝶是C#开发的,用C#能很方便地实现接口对接,因为他们有开发C#的工具类K/3 Cloud WebAPI进行接口的调用,并且把JSON的格式封装好了。但是JAVA就头疼了,调用接口的JSON格式和...
  • 对接顺丰接口相关

    千次阅读 2019-01-21 16:31:38
    今天做了下对接顺丰的接口对接的是http的接口,这个没什么说的,主要记录下返回的xml格式数据,并解析 import java.io.ByteArrayInputStream; import java.security.MessageDigest; import java.util.HashMap; ...
  • java对接短信接口

    千次阅读 2019-07-04 15:22:04
    一,注册对应的账户名和密码(密钥)再短信平台后台获取 二,编写对应的工具类 package com.meishi.mall.portal.util; /** * 短信 工具类 * @author chenxi * */ import java.io.IOException...import o...
  • 答题平台对接接口说明示例2017

    千次阅读 2016-12-10 10:23:29
    答题平台具有针对验证码的自动识别与自动输入的强大功能,开发者常常会将自己的软件与答题平台对接,为什么开发者需要与答题平台对接呢?因为他们需要答题平台来替他们解决验证码识别的相关问题,在与平台对接的过程...
  • java调用curl请求对接接口

    千次阅读 2020-09-16 14:20:51
    1, 原curl调用post接口的命令 curl -H 'Content-Type:application/json' -X POST --data '{"accountNumber":"lihuan@psych.ac.cn","externalPlatForm":"CALLCENTER","sign":"97699a609fc025804ad5faebeb85c14c"}...
  • WebService接口对接

    千次阅读 2019-03-08 14:48:39
    与第三方系统对接中难免会遇到webservice接口对接,特别是一些老系统。 第一步根据wsdl文档生成客户端,楼主是用eclipse生成的。 项目结构如下图 选中项目new other-&gt;webservice-&gt;选中Web ...
  • 微信现金红包接口对接

    千次阅读 2018-03-09 17:16:25
    微信现金红包接口对接前言 接到公司业务提出的需求,说公司的积分商城需要可以兑换现金,就是公众号给微信用户发送红包。对接的是发放普通红包接口。开发前置了解 接口文档地址:...
  • angular2--前端对接接口方法

    千次阅读 2018-12-20 10:34:43
    angular2前端对接接口方法 1、需要将谷歌浏览器设置跨域 https://www.cnblogs.com/cshi/p/5660039.html 2、在 \src\services\httpService.ts中创建接口路径: post 方法: public UserRegister(params:any):Promise...
  • 使用Swagger作API接口对接

    千次阅读 2019-10-14 16:34:42
    在制作文档的过程中,如果稍有不注意就容易出现文档错误,影响对接接口的准确性。  如果接口开发中出现新的需求,导致接口的传入参数、传出参数、链接地址发生改变,则需要同步更新对接文档,并将文件发送给对...
  • Flutter对接支付宝接口

    千次阅读 2020-02-17 19:02:17
    “ Flutter支付宝接口对接教程” 对于一个App来说,支付功能是不可获取的一部分,今天,我就来分享一下在Flutter框架中支付宝的APP支付功能的接入过程。本文结构如下: 支付宝开发平台应用申请 Flutter调用...
  • 支付宝手机wap支付对接接口

    千次阅读 2018-11-15 14:32:46
    好久不看居然变化了不少,闲话不多说,下面写下对接过程和流程。 1 申请蚂蚁金服支付宝商家服务,申请地址如下:https://uemprod.alipay.com/user/account/index.htm,具体的操作流程就不贴入了,这种操作一般都...
  • 提供信息: ...接口方给接口文档 ...对接大致流程: 1.调用第三方提供的接口getPaymentUrl(每家公司定义不同) 这个接口的作用是,我这边把基础参数以json格式,传递给ecpay那边的这个接口中,他们会处理...
  • WMS系统对接OMS接口经验

    万次阅读 2016-08-04 13:38:55
    WMS对接OMS是实现电商平台重要的一环,这里将本人从WMS对接OMS过程中好的经验进行一个简单的总结。本篇以库存同步为例: 1.定义规范 对外接口处理:严格定义接口说明,调用双方接口提供方和调用方。 内部逻辑处理:...
  • 花椒直播接口对接,第三方帐号打通时,为什么返回错误是接口未授权
  • 常用的接口对接

    千次阅读 2019-07-30 18:29:18
    1. 中间库 优点: 1.简单,数据查询、处理起来都比较的简单 2.通过对表的权限控制,可以明确与...2.接口变动时,影响较大 3.不太适合多用户的并发。如同一套结构的数据表支持多个不同的用户 2.URL方式 简单描述...
  • 对接支付宝支付接口

    千次阅读 2017-09-13 16:54:07
    所以就开始对接新的版本接口对接,在这里也记录一下让那些还没有对接的兄弟少走点弯路。 准备 先申请一个企业账户 https://memberprod.alipay.com/account/reg/enterpriseIndex.htm 创建应用 去支付宝的开放...
  • webservice的接口对接

    千次阅读 2018-08-04 21:25:52
    在接到对接接口的需求时,只收到一条url路径和一个方法名。 url路径:http://192.168.108.38:8090/sshuser/services/WSCertificate; 方法名:getVoucher( String FinterID); 下面一步步介绍利用axis对接接口的...
  • 前后端接口对接工具

    2021-01-29 10:41:59
    一、接口对接 在前后端分离开发时,后端工作人员完成系统接口开发后,需要与前端人员对接,测试调试接口,验证接口的正确性可用性。而这要求前端开发进度和后端进度保持基本一致,任何一方的进度跟不上,都无法及时...
  • 远程接口对接

    千次阅读 热门讨论 2015-10-31 23:10:47
    前端时间在和一个航空公司发布的接口进行对接,对方使用的是CXF,当然了客户端调用方式也是有多种的,我们使用的是Spring集成CXF的JaxWsProxyFactoryBean客户端代理工厂调用web服务。  。。。。。。。。。明天继续...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 93,555
精华内容 37,422
关键字:

对接接口什么意思