为restapi创建libs的免费方法

rest-api-lib-creator的Python项目详细描述


Build Status

rest api库创建者

rest api lib creator是为restfulapi(特别是使用Django REST framework创建的那些api)创建lib的一种无样板文件的方法,但肯定适用于其他框架。

注释

  • 这是我为自己做的一个私人项目的港口。它可能解决你的需求,也可能解决不了我的需求。
  • 这还是阿尔法。我在GH上打开这个只是为了看看这是不是我应该改进的。

安装:

pip install rest-api-lib-creator

示例:

  • 创建自己库的最小值:
fromrest_api_lib_creator.coreimportViewsetRestApiLibclassUser(ViewsetRestApiLib):base_api_url='http://super.cool/api/users'
  • 有了它,您可以随意使用您的api:
users=User.list()# Triggers a requests.get with url=http://super.cool/api/usersisinstance(users[0],User)user=User.create(first_name='Filipe',last_name='Waitman',email='filwaitman@gmail.com',photo=open('image.png','rb'))# Triggers a requests.post with url=http://super.cool/api/users and data={'first_name': 'Filipe', 'last_name': 'Waitman', 'email': 'filwaitman@gmail.com'} and files={'photo': <file binary content>}# Similarly to the call above you could create an empty object and save it:user=User()user.first_name='Filipe'user.last_name='Waitman'user.email='filwaitman@gmail.com'user.photo=open('image.png','rb')user.save()# Triggers a requests.post with url=http://super.cool/api/users and data={'first_name': 'Filipe', 'last_name': 'Waitman', 'email': 'filwaitman@gmail.com'} and files={'photo': <file binary content>}isinstance(user,User)print(user.id)# Prints the user id (assuming the API returned this field)print(user.first_name)# )rints the user first name (assuming the API returned this field)user.first_name='New name'user.save()# Triggers a requests.patch with url=http://super.cool/api/users/<user-id> and data={'first_name': 'New name'}user.delete()# Triggers a requests.delete with url=http://super.cool/api/users/<user-id>
  • 如果资源返回其他嵌套资源,则也可以对它们进行分析:
classPet(ViewsetRestApiLib):base_api_url='http://super.cool/api/pets'nested_objects={'owner':User,}pet=Pet.retrieve('pet-id')isinstance(pet,Pet)isinstance(pet.owner,User)

你可以看到所有可能的定制here(总有一天我会改进这个文档)。

特别感谢:

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java图像在图像视图中不可见   java在抽象表模型中实现复选框   java第二个JOptionPane。showInputDialog未打开   如何将字符串中的非常大的二进制文件转换为Java中的八进制文件   基于关键字的Java文本解析算法   java Axonix(Mobiclix)错误代码999999   servlets严重错误:java web应用程序中的listenerStart错误   数据结构如何在java中反转枚举元素的内容   反射检查这是什么java类类型   java LWJGL 3没有检测到OpenGL   java如何实现Github库?   Java从终端读取参数   java在多个踏板上使用相同的可运行引用   java Play Framework 2.5应用程序无可见原因崩溃   并发性在Java中我们可以同时使用fork/join和executor服务吗?   java从树上的特定类到对象,并获取其方法(无需多次编写)   java如何在FragmentStateAdapter中获取片段   java无法使用Spring Boot访问静态资源