易源接口showapi的使用

1.背景介绍:showAPI(易源数据),易源数据通过打破资源壁垒,搭建起数据资源的基础设施,将接口纳入统一的接口池,把多个异构数据源合并到同一根管线上,以统一的访问和控制方式,对外提供统一格式的数据。让开发者可以像搭积木一样通过各种API操纵资源。截至2017年12月,平台已经拥有API接口230个,日调用量2000万,覆盖全网10万+真实消费者,为超过3000+的企业用户提供全域数据服务。


2.要想使用易源APIStore的免费接口,必须先在平台注册账号,可以使用邮箱注册账号。平台网址:https://www.showapi.com/,注册账号后,可以免费使用指定的一些接口,也可以付费使用一些付费接口,实名认证后还可以获得免费接口使用的更多特权。
注册账号之后,会得到一个appid和secret(密钥),如下所示
这里写图片描述
接下来,就可以选择免费的接口并订购了,如下所示
这里写图片描述


3.选择其中一个接口如“历史上的今天”为例,演示使用;点击“历史上的今天”进入详情页面,往下拉可看到下载sdk的超链接如下,把javasdk下载下来,导入eclipse中,此处需注意,导入sdk后会看到项目有红色感叹号报错,是因为缺少了相应的jar包导致,导入相应jar包即可解决,一开始我搞不清楚问题所在,在这里浪费了点时间。
这里写图片描述


4.导入sdk之后便可以来编写测试代码了,前端代码这里就不粘贴了,大家各自发挥,只贴JavaBean的代码和action里的代码如下

package com.test;

import java.util.Date;

public class thing {
    private String event;
    private String date;
    public String getEvent() {
        return event;
    }
    public void setEvent(String event) {
        this.event = event;
    }
    public String getDate() {
        return date;
    }
    public void setDate(String date) {
        this.date = date;
    }
}

action里的代码如下:

package com.test;

import java.io.UnsupportedEncodingException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

import javax.servlet.http.HttpServletRequest;

import org.apache.struts2.ServletActionContext;

import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.opensymphony.xwork2.ActionSupport;
import com.show.api.ShowApiRequest;

public class test extends ActionSupport{

    public String find() throws UnsupportedEncodingException  {
        // TODO Auto-generated method stub

        //获取前端发来的数据,request方式
        HttpServletRequest request=ServletActionContext.getRequest();
        //获取当前网络时间
        Date currentTime = new Date();
        SimpleDateFormat formatter = new SimpleDateFormat("MMdd");
        String dateString = formatter.format(currentTime);


        String res=new ShowApiRequest("http://route.showapi.com/119-42","59563","c2cbb049e5c24069aa4c81d6989ec3a5")
                .addTextPara("date",dateString)
              .post();
        try {
        JSONObject js=JSONObject.parseObject(res);
        //System.out.println(js.getJSONObject("showapi_res_body"));
        //String list=js.getString("list");
        //System.out.println(list);
        JSONArray jsarr=js.getJSONObject("showapi_res_body").getJSONArray("list");
        //循环得出所有对象
        System.out.println("断点1"+jsarr);
        List<thing> list=new ArrayList<thing>();
        for(int i=0;i<jsarr.size();i++) {
            System.out.println("断点2");
            JSONObject ao=jsarr.getJSONObject(i);
            String a=ao.getString("title");
            String b=ao.getString("year");
            String c=ao.getString("month");
            String d=ao.getString("day");
            String date=b+"-"+c+"-"+d;
            thing t=new thing();
            t.setEvent(a);
            t.setDate(date);
            System.out.println(a+","+b+"-"+c+"-"+d);
            list.add(t);
        }
        request.setAttribute("list", list);
        }
        catch(Exception e) {
            e.printStackTrace();
        }
            return SUCCESS;
    }

}

struts.xml配置如下

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
    "http://struts.apache.org/dtds/struts-2.3.dtd">

<struts>

<!-- 包结构 -->
    <package name="default" namespace="/" extends="struts-default">
     <!-- 配置action -->
     <action name="yiyuanapi_*" class="com.test.test" method="{1}">
     <!-- 配置跳转页面 -->
        <result name="success">/index.jsp</result>
     </action>   
    </package>
</struts>

5.关于上面对接口返回的JSON形式数据的处理,可以使用fastjson工具对其进行反序列化;
阿里巴巴FastJson是一个Json处理工具包,包括“序列化”和“反序列化”两部分,它具备如下特征:速度最快,测试表明,fastjson具有极快的性能,超越任其他的Java Json parser。包括自称最快的JackJson;功能强大,完全支持Java Bean、集合、Map、日期、Enum,支持范型,支持自省;无依赖,能够直接运行在Java SE 5.0以上版本;支持Android;开源 (Apache 2.0)
API入口类是com.alibaba.fastjson.JSON,常用的序列化操作都可以在JSON类上的静态方法直接完成。这里推荐博文:https://www.cnblogs.com/tapt/p/6614127.html
fastjson工具需要用到jar包网盘下载地址:链接:https://pan.baidu.com/s/1SXPHhwl9FRXxCoGHmk5NfA 密码:kqwk


6.最后界面效果如下
这里写图片描述

猜你喜欢

转载自blog.csdn.net/weixin_36413887/article/details/79713234