nVisual API接口使用说明

1、nVisual API接口作用

nVisual API为用户提供访问nVisual的程序接口。可用作web浏览器接口调用或第三方操作平台调用来实现操作nVIsual。

2、nVisual API接口定义规范

nVisual API接口整体采用resful风格

URL路径规则:

  ip:端口/wapi/v1/...

  示例:demo.nvisual.com:8081/wapi/v1/authenticate

请求方式:

GET:从服务端获取资源

POST:新建资源到服务端

PUT:更新服务端资源(客户端提供改变后的完整资源)

DELETE:删除服务器资源

示例:

GET  /wapi/v1/nodes  查询所有的节点

GET  /wapi/v1/nodes/{nodeId}  通过nodeId查询节点

POST  /wapi/v1/nodes 创建节点

PUT  /wapi/v1/nodes/{nodeId}  通过nodeId修改节点信息

DELETE  /wapi/v1/nodes/{nodeId}  通过nodeId删除节点和节点下的子节点

请求参数:

request header:可存放token

地址栏参数:如/wapi/v1/nodes/{nodeId}中{nodeId}

请求body数据:入参数据

响应格式:   

{

         "code": 200,

         "message": "success",

         "data": {}

}

具体返回详见具体API接口

3、nVisual API接口调用步骤

postman调用测试:

1、访问获取token   /wapi/v1/authenticate   POST 

body参数{"username":"","passward":""}

2、获取token后,访问其他API接口,例如根据nodeId获取节点(node)信息

httpClient调用测试:

httpClient调用时将token放入请求头中。key值为Authorization,value值为"Bearer "+获取到的token。

4、nVisual API 接口调用代码示例(JAVA示例、PYTHON\C#后续补充)

JAVA通过httpClient调用nVIsual API接口:

1、获取token

public String getToken(){

        //获取token

        String token = "";

        Map<String, String> map = new HashMap<String, String>();

        map.put("username","dongjunjie");

        map.put("password","");

        String jsonString = JSON.toJSONString(map);

        try {

            String responseToken = HttpUtil.postJSON(nvisualApiConfig.getNvisualUrl()+"/wapi/v1/authenticate",jsonString);

            Map responseTokenMap = JSONObject.parseObject(responseToken,Map.class);

            if("200".equals(responseTokenMap.get("code").toString())){

                Map<String, Object> data = (Map<String, Object>)responseTokenMap.get("data");

                token = (String) data.get("access_token");

            }

        } catch (Exception e) {

            token = "";

        }

        return token;

}

  httpClient工具类:    

/*

    * json格式的参数 post请求

    * 获取json数据

    * */

    public static String postJSON(String url,String paramjson){

        HttpPost post = new HttpPost(url);

        HttpClient httpClient = HttpClientBuilder.create().build();

        try {

            StringEntity stringEntity = new StringEntity(paramjson, ContentType.APPLICATION_JSON);

            post.setEntity(stringEntity);

            HttpResponse response = httpClient.execute(post);

            if(response.getStatusLine().getStatusCode()==200){

                //获取响应的内容对象

                HttpEntity httpEntity = response.getEntity();

                //转换结果位字符串

                return EntityUtils.toString(httpEntity);

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

        return  null;

    }

2、根据nodeId获取node示例 

 public Nodes getNodesById(Long nodeId,String token){

        Nodes nodes = null;

        String nodesJsonString= HttpClient.getJSON(nvisualApiConfig.getNvisualUrl()+"/wapi/v1/nodes/"+nodeId,"Bearer "+token);

        Map responseMap = JSONObject.parseObject(nodesJsonString,Map.class);

        if("200".equals(responseMap.get("code").toString())){

            nodes = JSON.toJavaObject((JSON) responseMap.get("data"),Nodes.class);

        }

        return nodes;

}

httpClient中getJSON方法

public static String getJSON(String url,String token){

        //1、创建请求方式对象

        HttpGet get = new HttpGet(url);

        //2、创建客户端对象

        HttpClient client = HttpClientBuilder.create().build();

        HttpHeaders headers=new HttpHeaders();

        headers.setBearerAuth(token);

        //设置token

        get.addHeader("Authorization", token);

        // 传输的类型

        get.addHeader("Content-Type", "application/x-www-form-urlencoded");



        try {

            //3、获取请求结果

            HttpResponse response = client.execute(get);

            //4、校验http状态码

            if(response.getStatusLine().getStatusCode()==200){

                //获取响应的内容对象

                HttpEntity httpEntity = response.getEntity();

                //转换结果位字符串

                return EntityUtils.toString(httpEntity);

            }

        } catch (IOException e) {

            e.printStackTrace();

        }

        return null;

    }


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

nVisual

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值