易源接口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.最後界面效果如下
這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章