05 - Integrando Banco de Dados a API

01 - Qual a função de adicionarmos a função "Depends" no seguinte código:

@app.post('/users/', status_code=HTTPStatus.CREATED, response_model=UserPublic)
def create_user(
    user: UserSchema,
    session: Session = Depends(get_session)
):

02 - Sobre a injeção na fixture podemos afirmar que:

with TestClient(app) as client:
    app.dependency_overrides[get_session] = get_session_override
    yield client

app.dependency_overrides.clear()

03 - Essa fixture no banco de dados garante que:

@pytest.fixture
def session():
    engine = create_engine(
        'sqlite:///:memory:',
        connect_args={'check_same_thread': False},
        poolclass=StaticPool,
    )

04 - Para que o cliente requisite o campo "limit" ele deve usar a url:

@app.get('/users/', response_model=UserList)
def read_users(
    skip: int = 0, limit: int = 100, session: Session = Depends(get_session)
):

05 - Quais os padrões de projeto implementados pela Session?

06 - O que faz o método session.commit()?

07 - O que faz o método session.refresh(obj)?

08 - O que o "|" siginifica na query?

session.scalar(
    select(User).where(
        (User.username == user.username) | (User.email == user.email)
    )
)

09 - Quando usamos o método 'model_validate' de um schema do Pydantic estamos:

10 - Quando usamos 'model_config' em um schema do Pydantic estamos: