美文网首页
从yapi 获取接口类 小工具

从yapi 获取接口类 小工具

作者: momokara | 来源:发表于2020-07-11 17:29 被阅读0次
# jupyter notebook cells
import requests
import json
from urllib import parse

# 需要先配置yapi地址, projectId 为项目id 
yapi地址='http:/你的地址/'
请求头={'Content-Type':'application/json'}

# 受不了还是写英文方便获取接口的类
def checkItemType(items,key='',perspace='',space='  ',endtag=';'):
    if(key==''):
        print ('{')
    else:
        print (key+'{')
 
    if(items['properties']):
        for item in items['properties']:
            if(items['properties'][item]['type']=='object'):
                checkItemType(items=items['properties'][item],space=space+space,key=space+item+': ',perspace=space)
            elif(items['properties'][item]['type']=='array'):
                checkItemType(items['properties'][item]['items'],space=space+space,key=space+item+': Array<',perspace=space,endtag='>;')
            else:
                print (space+item+':',items['properties'][item]['type']+';')

    print (perspace+'}'+endtag)
    if(key==''):
        print ('\n')

def 接口信息 (id,token):
    请求地址=yapi地址+'api/interface/get'
    参数={'id':id,'token':token}
    接口详情=requests.get(url=请求地址,params=参数,headers=请求头).json()
    返回信息=接口详情['data']['res_body']
    
    if (接口详情['data']['res_body_is_json_schema']):
        返回信息=json.loads(返回信息)
        checkItemType(items=返回信息)
        
    else:
        print (返回信息 ,'\n')

def 获取接口列表(projectId,token,isPrint=True):
    请求地址=yapi地址+'api/interface/list'
    参数={'limit':'1000','project_id':id,'token':token}
    接口列表=requests.get(url=请求地址,params=参数,headers=请求头)
    print('请求地址\n'+接口列表.url+'\n')
    接口列表=接口列表.json()['data']['list']
    if(isPrint):
        for 接口信息 in 接口列表:
            print((接口列表.index(接口信息)+1),'.',接口信息['_id'],接口信息['title'],':')
            print('  method',':',接口信息['method'])
            print('  url',':',接口信息['path'])
            print()
    else:
        return 接口列表
    
def 获取全部接口信息 (projectId,token):
    接口列表=获取接口列表(id,token,isPrint=False)
    for 接口内容 in 接口列表:
        print (接口内容['title'],'| id:',接口内容['_id'],':','\nmethod : '+接口内容['method'],'\nurl : '+接口内容['path'])
        接口信息(id=接口内容['_id'],token=token)

相关文章

网友评论

      本文标题:从yapi 获取接口类 小工具

      本文链接:https://www.haomeiwen.com/subject/zjvicktx.html