This is a workshop so,
please prepare laptop or smartphone to join!
leticia.perrino@gmail.com
Build modern microservices in Python with a high performance and asyncronous support
DRF is really great but… too heavy, so…
Pros:
Cons:
Feature | DRF | FastAPI |
---|---|---|
CBV | ![]() |
Supported with external aid (fastapi-utils) |
Data Serializing and validation | ![]() |
![]() |
DB integration | ![]() |
You choose |
Swagger/OpenAPI integration | ![]() |
![]() |
Authentication | ![]() |
![]() |
Data pagination | ![]() |
Supported with external aid (fastapi-pagination) |
Main structure
Basic core
Api core and views
Core services and validation schemas
digraph {
compound=true
rankdir=RL
graph [ fontname="Source Sans Pro", fontsize=20 ];
node [ fontname="Source Sans Pro", fontsize=18];
edge [ fontname="Source Sans Pro", fontsize=12 ];
subgraph core {
c [label="Hackmd-it \ncore"] [shape=box]
}
c -> sync [ltail=session lhead=session]
subgraph cluster1 {
concentrate=true
a [label="Text source\nGithub, Gitlab, ..."] [shape=box]
b [label="HackMD Editor"] [shape=box]
sync [label="sync" shape=plaintext ]
b -> sync [dir="both"]
sync -> a [dir="both"]
label="An edit session"
}
}
onMessage('event')
: Register event listenersendMessage('event')
: Trigger eventimport * as Channeru from 'channeru'
// setup channel in different page environment, once
const channel = Channeru.create()
// in background script
const fakeLogin = async () => true
channel.answer('isLogin', async () => {
return await fakeLogin()
})
// in inject script
const isLogin = await channel.callBackground('isLogin')
console.log(isLogin) //-> true
You can find me on