API-json格式

一、API-json格式 (应用程序接口)

1、添加url:hostinfo/getjson/

[[email protected] simplecmdb-json]# vim /opt/python/django/simplecmdb-json/simplecmdb/urls.py
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns(‘‘,
    # Examples:
    # url(r‘^$‘, ‘simplecmdb.views.home‘, name=‘home‘),
    # url(r‘^blog/‘, include(‘blog.urls‘)),

    url(r‘^admin/‘, include(admin.site.urls)),
    url(r‘^hostinfo/collect/$‘,‘hostinfo.views.collect‘),
    url(r‘^hostinfo/getjson/$‘,‘hostinfo.views.getjson‘),
)

2、在视图里面定义函数

[[email protected] simplecmdb-json]# vim /opt/python/django/simplecmdb-json/hostinfo/views.py
from hostinfo.models import Host,HostGroup #需要倒入HostGroup

#增加一个函数,
def getjson(req):
    ret_list = []
    hg = HostGroup.objects.all()
    for g in hg:
        ret = {‘groupname‘:g.groupname,‘members‘:[]}
        for h in g.members.all():
            ret_h = {‘hostname‘:h.hostname,‘ip‘:h.ip}
            ret[‘members‘].append(ret_h)
        ret_list.append(ret)
    return HttpResponse(json.dumps(ret_list))

3、web访问:http://112.65.140.13:8080/hostinfo/getjson/得到Json数据:

[[email protected] simplecmdb-json]# curl http://112.65.140.133:8080/hostinfo/getjson/
[{"groupname": "group1", "members": [{"ip": "112.65.140.132", "hostname": "localhost.localdomain"}, {"ip": "192.168.1.168", "hostname": "test"}]}, {"groupname": "group2", "members": []}]

In [5]: import urllib,urllib2

In [6]: urllib2.urlopen(‘http://112.65.140.133:8080/hostinfo/getjson/‘)
Out[6]: <addinfourl at 33716920 whose fp = <socket._fileobject object at 0x1fc33d0>>

In [7]: req = urllib2.urlopen(‘http://112.65.140.133:8080/hostinfo/getjson/‘)

In [8]: req.read()
Out[8]: ‘[{"groupname": "group1", "members": [{"ip": "112.65.140.132", "hostname": "localhost.localdomain"}, {"ip": "192.168.1.168", "hostname": "test"}]}, {"groupname": "group2", "members": []}]‘

In [9]: req.read()
Out[9]: ‘‘
In [1]: import json
In [3]: req = urllib2.urlopen(‘http://112.65.140.133:8080/hostinfo/getjson/‘)
In [4]: data = req.read()
In [11]: d = json.loads(data)
In [12]: d
Out[12]:
[{u‘groupname‘: u‘group1‘,
  u‘members‘: [{u‘hostname‘: u‘localhost.localdomain‘,
    u‘ip‘: u‘112.65.140.132‘},
   {u‘hostname‘: u‘test‘, u‘ip‘: u‘192.168.1.168‘}]},
 {u‘groupname‘: u‘group2‘, u‘members‘: []}]
 
 In [13]: for i in d : print i
{u‘groupname‘: u‘group1‘, u‘members‘: [{u‘ip‘: u‘112.65.140.132‘, u‘hostname‘: u‘localhost.localdomain‘}, {u‘ip‘: u‘192.168.1.168‘, u‘hostname‘: u‘test‘}]}
{u‘groupname‘: u‘group2‘, u‘members‘: []}

二、API-shell格式

方法相同

1、添加url:hostinfo/getshell/

[[email protected] simplecmdb-json]# vim /opt/python/django/simplecmdb-json/simplecmdb/urls.py
from django.conf.urls import patterns, include, url

from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns(‘‘,
    # Examples:
    # url(r‘^$‘, ‘simplecmdb.views.home‘, name=‘home‘),
    # url(r‘^blog/‘, include(‘blog.urls‘)),

    url(r‘^admin/‘, include(admin.site.urls)),
    url(r‘^hostinfo/collect/$‘,‘hostinfo.views.collect‘),
    url(r‘^hostinfo/getjson/$‘,‘hostinfo.views.getjson‘),
    url(r‘^hostinfo/getshell/$‘,‘hostinfo.views.getshell‘),
)

2、在视图里面定义函数

vim /opt/python/django/simplecmdb-json/hostinfo/views.py
 
#增加getshell的方法:
 def getshell(req):
    res = ‘‘
    hg = HostGroup.objects.all()
    for g in hg:
        groupname = g.groupname
        for h in g.members.all():
            hostname = h.hostname
            ip = h.ip
            res += groupname+‘ ‘+hostname+‘ ‘+ip +‘\n‘
    return HttpResponse(res)

3、访问测试:

访问测试
[[email protected] simplecmdb-json]# curl http://112.65.140.133:8080/hostinfo/getshell/
group1 localhost.localdomain 112.65.140.132
group1 test 192.168.1.168

In [1]: import urllib,urllib2

In [2]: urllib2.urlopen(‘http://112.65.140.133:8080/hostinfo/getshell/‘)
Out[2]: <addinfourl at 33701040 whose fp = <socket._fileobject object at 0x1e74150>>

In [3]: req = urllib2.urlopen(‘http://112.65.140.133:8080/hostinfo/getshell/‘)

In [4]: req.read()
Out[4]: ‘group1 localhost.localdomain 112.65.140.132\ngroup1 test 192.168.1.168\n‘
时间: 2024-10-11 04:14:27

API-json格式的相关文章

MVC api json 格式

var formatters = config.Formatters.Where(formatter => formatter.SupportedMediaTypes.Where(media => media.MediaType.ToString() == "application/xml" || media.MediaType.ToString() == "text/html").Count() > 0) //找到请求头信息中的介质类型 .ToL

JSON API免费接口 各种提供JSON格式数据返回服务网站的API接口

这里为大家搜集了一些能够返回JSON格式的服务接口.部分需要用JSONP调用. 电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuIds=J_商品ID&type=1 用例 ps:商品ID这么获取:http://item.jd.com/954086.html 淘宝商品搜索建议: http://suggest.taobao.com/sug?code=utf-8&q=商品关键字&callback=cb 用例 ps:callback是回调函数

ASP.NET API(MVC) 对APP接口(Json格式)接收数据与返回数据的统一管理

话不多说,直接进入主题. 需求:基于Http请求接收Json格式数据,返回Json格式的数据. 整理:对接收的数据与返回数据进行统一的封装整理,方便处理接收与返回数据,并对数据进行验证,通过C#的特性对token进行验证,并通过时间戳的方式统一处理接收与返回的时间格式. 请求Json格式: { "Cmd": "login", "Token": "", "PageNo": 0, "OnePageNu

web Api自定义部分Action的JSON格式输出

昨天项目中要部分Api的JSON格式需要特殊处理.最开始直接重写controller的JSON方法.经测试,当action直接返回数据的时候,不会调用Json方法. 然后找了各种方法,都不行.在群里问了.直到看到群友发的一个直接移除所有API的JSON格式方法的时候.图片如下: 然后就想到了Api的ActionFilterAttribute.就解决了自己的需求. 上代码.懒得写说明. 1 public class AppFilterAttribte : ActionFilterAttribute

Python[7] :Python制作json格式和shell格式的API

api(应用程序编程接口) API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节. 继承前几篇文章,围绕资产管理搜集的信息,进行这篇文章的api 一.sqlite数据库的基本使用 资产管理的后台数据库用的是sqlite,这个是轻量级的数据库,大家可能对这个数据库很陌生.那么我们就简单的来看看这个数据库是如何使用的? 1.登陆

Web API删除JSON格式的文件记录

Insus.NET的系列Web Api学习文章,这篇算是计划中最后一篇了,删除JSON格式的文件记录.前一篇<Web Api其中的PUT功能演示>http://www.cnblogs.com/insus/p/4346982.html中学习了怎样更新数据.程序开发涉及到数据的,为了让用户方便管理,一般提供了查询,添加,更新以及删除功能.本篇中是针对文件中的数据进行删除. 下面Insus.NET就对此进行详尽演示.Web Api的一个type: "DELETE".在API控制中

对象转换为json格式,类似中间层API

<一头扎进SpringMvc视频教程\<一头扎进SpringMvc>第四讲 源码\> 对象自动转换为json格式要在 spring-mvc.xml添加一个东西 ,和对应的命名空间引用和规范,和对应的jar包 <!-- 支持对象与json的转换. --> <mvc:annotation-driven/>  //注解驱动 提到目前已经引用了一堆很乱的jar包,maven时就简单了. <beans xmlns="http://www.springf

thinkphp5.0--编写api,返回json格式

前几天没有写php代码,今天写了一下,今天的任务主要是构建自己的异常体系类,出现一个问题,就是返回结果不是json格式,而是一个页面,我找了一两个小时,没有找到问题,以为代码的问题,用断点调试了一通,最后居然是没有修改配置文件导致的,我居然把这个给忘记了. // 异常处理handle类 留空使用 \think\exception\Handle 'exception_handle' =>' ' 要是自己定义要就要把自己定义的目录填上去;

API 设置输出格式可以为XML和Json格式

Accept : application/xml Accept: application/json //如下设置可以支持xml和json格式输出.默认输出格式为json services.AddControllers(configure: setup => { setup.ReturnHttpNotAcceptable = true; }).AddXmlDataContractSerializerFormatters(); //默认输出格式为Json,现在把默认格式给为XML格式输出 servi

pyhton读取json格式的气象数据

原文关于读取pm25.in气象数据的pyhton方法,以及浅析python json的应用 以pm25.in网站数据为例. 1.方法介绍 首先感谢pm25.in提供了优质的空气污染数据,为他们的辛勤劳动点个赞.是python3.3,windows系统,读取数据的时候用到了python的json处理的4个方法,很经典常用.所谓4个方法是: a)       json.loads() 输入string,返回json. b)       json.dumps() 输入json类型的数据,返回包含jso