Last updated:
0 purchases
botapi 1.2.1
Build json API fast and simple
Key Features
Provides simple API.
Supports serialize/deserialize class objects to/from dictionary.
Field type may be the same with model type (self_base Field attribute)
Installation
pip install botapi
Getting started
Let’s take some data:
order = {
'user': {
'name': 'Jack',
'surname': 'Doe',
'phone': '123456789',
},
'date': '2020-12-10 10:12:13',
'paid': True,
'items': [
{
'name': 'product 1',
'id': 1,
'quantity': 2,
'subtotal': 10.5
},
{
'name': 'product 2',
'id': 2,
'quantity': 1,
'subtotal': 5
}
]
}
Write models:
from datetime import datetime
from botapi import Model, Field, ListField
class Item(Model):
name = Field()
item_id = Field(alias='id')
# inherit model
class CartItem(Item):
quantity = Field(base=int)
subtotal = Field()
class UserModel(Model):
name = Field()
surname = Field()
phone = Field()
class OrderModel(Model):
user = Field(base=UserModel)
paid = Field(base=bool, default=False)
cart = ListField(item_base=CartItem, default=[], alias='items')
order_date = DateTimeField()
Deserialize and work with data:
# deserialize data
obj = OrderModel(**order)
# work with data
obj.user.name = 'John'
obj.paid = True
obj.cart[0].subtotal = 12.5
obj.order_date = datetime.now()
Serialize model:
# may be you want to add some data
comment = 'call before delivery'
# serialize data
print(obj.serialize(data_to_update={'comment': comment}))
Output:
{'user': {'surname': 'Doe', 'phone': '123456789', 'name': 'John'}, 'paid': True, 'items': [{'quantity': 2, 'subtotal': 12.5, 'id': 1, 'name': 'product 1'}, {'quantity': 1, 'subtotal': 5, 'id': 2, 'name': 'product 2'}], 'order_date': '2020-12-22 12:04:39', 'comment': 'call before delivery'}
Requirements
Python >= 3.7
License
BotAPI is distributed under the Apache License 2.0 license.
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.