Pular para conteúdo

05 - Integrando Banco de Dados a API

#

Questão 1

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)
):
#

Questão 2

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()
#

Questão 3

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,
    )
#

Questão 4

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)
):
#

Questão 5

Quais os padrões de projeto implementados pela Session?

#

Questão 6

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

#

Questão 7

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

#

Questão 8

O que o | siginifica na query?

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

Questão 9

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

#

Questão 10

Quando usamos model_config em um schema do Pydantic estamos: