为网站、在线服务和第三方私有api自动生成api客户端库/sdk。
rapic的Python项目详细描述
什么是Rapic?在
Rapic是一个简单而快速的轻量级工具,用于自动生成用于网站和在线服务的api客户端库和sdk。它还支持 为第三方公共和私有api自动生成客户端库,这对逆向工程师非常有利。在
安装
pip安装rapic
跑步
有两种方法可以使用rapic
- 使用rapic客户端生成器从逆向工程工具自动生成客户端文件。在
- 手动创建rapic api客户端文件。在
使用Rapic客户端生成器
作为一个逆向工程,节省时间是至关重要的,这意味着减少了写作时间 反向私有第三方api、网站或其他互联网服务的api客户端。Rapic制造发电 只需执行以下几步即可轻松完成客户端库:
**注** Rapic自动客户端生成器目前只支持BURPSUITE逆向工程工具
- 在
步骤1:使用BurpSite时,右键单击目标下的站点地图选项卡下的网站
在 - 在
步骤2:将请求另存为xml文件并取消选中base64编码请求和响应
在 - 在
步骤3:运行“rapic客户端生成器burp<;网站”“网站”“网站”“或”“api”“名称”>;已保存_文件.xml'
在 - 在
步骤4:打开生成的json文件并命名您的请求,然后使用客户端
在from rapic.client import APIClient api = ApiClient(client_name='website_or_service_name', request_file=generated_file_from_rapic.json) val = api.get_currency() # A request is named get_currency by changing request_<num> to get_currency for a chosen request in json file
使用Rapic客户端JSON文件
程序员也可以在使用rapic为他们的网站和服务创建客户端库/sdk时节省时间。简单地说 创建具有结构的json文件
^{pr2}$注意:请检查test文件夹以了解更多json文件结构和支持的键
请求也可以在发送到服务器之前进行挂接,以进行额外的处理,如http签名签名、时间戳生成等
***json_file.json
{
"host": "httpbin.org",
"scheme": "http",
"get_user_followers": {
"path": "/get_user_followers/{path_id}",
"method": "POST"
},
}
***client.py
import hashlib
from rapic.client import APIClient
from rapic.hook import APIClientHook
class MyApiClient(APIClient):
@APIClientHook.hook_client_request_data(client='httpbin',
requests=['get_user_followers'])
def set_http_signature_on_header(data, **kwargs):
sign_request = data['url'] + data['method'] + urlencode(data['body_data'])
m = hashlib.sha256()
m.update(bytes(sign_request, encoding='utf8'))
signature = m.hexdigest()
data['headers']['signature'] = signature
self.http_signature = signature
return data
api = MyApiClient(client_name='website_or_service_name', request_file=json_file.json)
val = api.get_user_followers(data={user_id : 67888}, url_data={path_id : 'unique_id_get_set_as_path_id'})
**支持的挂钩列表**
- 在APIClientHook.hook_客户端_准备好的请求()
- 在APIClientHook.hook_客户端_响应()
- 在APIClientHook.hook_客户端_请求_数据()
- 在APIClientHook.hook_客户端_body_数据()
- 在APIClientHook.hook_客户端\u url()
- 在APIClientHook.hook_客户端_标头()
LICENSE
麻省理工学院
- 项目
标签: