-
Notifications
You must be signed in to change notification settings - Fork 8
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
JSONApi #11
Comments
Stavo facendo prove per far entrare gli uuid degli Item nella relationship, invece dell'id che genera peewee e da quel che mi pare di aver capito non c"è modo di specificargli dove prendere il field class Item(BaseModel):
item_id = UUIDField(unique=True, primary_key=True)
# ... {
"relationships": {
"items": {
"data": [
{
"id": null,
"type": "item"
}
]
}
}
} Nel tabella La soluzione che ho trovato è ridefinire il field class Item(BaseModel):
id = UUIDField(unique=True, primary_key=True, default=uuid4) genera {
"relationships": {
"items": {
"data": [
{
"id": "743146c4-e503-4f0c-b594-899bb5c33af0",
"type": "item"
}
]
}
}
} Questo ovviamente non corrisponde al field Tutto questo accade, mi pare di aver capito, perchè il dump accede all'oggetto di origine (il modello di PeeWee) e non a quello generato dal relativo schema ( La soluzione più semplice sarebbe fare valutare #52 e reimplementare il field |
ok, risolto il problema con Alcune domande, a questo punto:
|
al momento la serializzazione in JSONApi viene così: ItemRappresenta semplicemente un oggetto {
"data": {
"attributes": {
"description": "Item 1 description.",
"name": "Item 1",
"price": 20.21
},
"id": "ab49055c-4f7c-4fb7-8945-7917255b83e7",
"links": {
"self": "/items/ab49055c-4f7c-4fb7-8945-7917255b83e7"
},
"type": "item"
},
"links": {
"self": "/items/ab49055c-4f7c-4fb7-8945-7917255b83e7"
}
} UserLa rappresentazione di un {
"data": {
"attributes": {
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe"
},
"id": "fe2b7fb2-6b9a-4023-afd0-4eaa2133917e",
"links": {
"self": "/users/fe2b7fb2-6b9a-4023-afd0-4eaa2133917e"
},
"relationships": {
"orders": {
"data": [
{
"id": "acc0145e-2edf-4eb1-a83c-2fb8092e8357",
"type": "order"
},
{
"id": "ef87ecf7-df15-49ca-8eb4-0b3c02dd45ee",
"type": "order"
}
]
}
},
"type": "user"
},
"included": [
{
"attributes": {
"date": "2017-04-10T19:15:11.053419+00:00",
"delivery_address": "Via Rossi 12",
"total_price": 110.72
},
"id": "acc0145e-2edf-4eb1-a83c-2fb8092e8357",
"relationships": {
"items": {
"data": [
{
"id": "9fe57785-0b6b-4017-a095-607b0ffaa39f",
"type": "item"
},
{
"id": "bb9b4de6-b545-4635-a030-d88c3c17fa72",
"type": "item"
}
]
},
"user": {
"data": {
"id": "fe2b7fb2-6b9a-4023-afd0-4eaa2133917e",
"type": "user"
}
}
},
"type": "order"
},
{
"attributes": {
"date": "2017-04-10T19:15:11.095406+00:00",
"delivery_address": "Via Rossi 12",
"total_price": 50.38
},
"id": "ef87ecf7-df15-49ca-8eb4-0b3c02dd45ee",
"relationships": {
"items": {
"data": [
{
"id": "bb9b4de6-b545-4635-a030-d88c3c17fa72",
"type": "item"
},
{
"id": "9fe57785-0b6b-4017-a095-607b0ffaa39f",
"type": "item"
}
]
},
"user": {
"data": {
"id": "fe2b7fb2-6b9a-4023-afd0-4eaa2133917e",
"type": "user"
}
}
},
"type": "order"
}
],
"links": {
"self": "/users/fe2b7fb2-6b9a-4023-afd0-4eaa2133917e"
}
} OrderOrder recupera i dati da serializzare dall'istanza All'interno dello {
"data": {
"attributes": {
"date": "2017-04-10T19:16:24.295220+00:00",
"delivery_address": "Via Rossi 12",
"total_price": 50.38
},
"id": "ec583a70-dd97-43f8-8c1b-68f52707c338",
"relationships": {
"items": {
"data": [
{
"id": "f598f122-29bb-4fe3-a5fc-97113bf4c098",
"type": "item"
},
{
"id": "6620aafd-b411-45a0-b372-40743a0eb97b",
"type": "item"
}
]
},
"user": {
"data": {
"id": "6ec131ba-c8c6-46c5-af26-0622a5e25192",
"type": "user"
}
}
},
"type": "order"
},
"included": [
{
"attributes": {
"email": "[email protected]",
"first_name": "John",
"last_name": "Doe"
},
"id": "6ec131ba-c8c6-46c5-af26-0622a5e25192",
"links": {
"self": "/users/6ec131ba-c8c6-46c5-af26-0622a5e25192"
},
"relationships": {
"orders": {
"data": [
{
"id": "7ccb5b11-ae5b-4391-a419-b33cc059d553",
"type": "order"
},
{
"id": "ec583a70-dd97-43f8-8c1b-68f52707c338",
"type": "order"
}
]
}
},
"type": "user"
},
{
"attributes": {
"description": "Item 2 awesome description.",
"name": "Item 2",
"price": 30.17,
"quantity": 1,
"subtotal": 30.17
},
"id": "f598f122-29bb-4fe3-a5fc-97113bf4c098",
"links": {
"self": "/items/f598f122-29bb-4fe3-a5fc-97113bf4c098"
},
"type": "order_item"
},
{
"attributes": {
"description": "Item 1 description.",
"name": "Item 1",
"price": 20.21,
"quantity": 1,
"subtotal": 20.21
},
"id": "6620aafd-b411-45a0-b372-40743a0eb97b",
"links": {
"self": "/items/6620aafd-b411-45a0-b372-40743a0eb97b"
},
"type": "order_item"
}
]
} |
Chiudo, i followup task saranno aperti in altre pr |
https://marshmallow-jsonapi.readthedocs.io/en/latest/
Gli Schema di marshmallow possono essere usati per creare json da servire al client che rispettino la JSONApi.
The text was updated successfully, but these errors were encountered: