Skip to content

Instantly share code, notes, and snippets.

View felipebastosweb's full-sized avatar
🏠
Working from home

felipe bastos felipebastosweb

🏠
Working from home
View GitHub Profile
@felipebastosweb
felipebastosweb / controller_api_join.cs
Created November 21, 2025 14:40
Sempre fazer a API Controller com Join para diminuir a complexidade do app mobile
public class StudentsController : ControllerBase
{
private readonly YourDbContext _context;
public StudentsController(YourDbContext context)
{
_context = context;
@felipebastosweb
felipebastosweb / AuthController.cs
Last active November 18, 2025 23:28
Pelo fato do Program habilitar JWT, Identity e CORS automaticamente [Authorize] exige essa autenticação
using Microsoft.AspNetCore.Identity;
using Microsoft.AspNetCore.Mvc;
using Microsoft.Extensions.Configuration;
using Microsoft.IdentityModel.Tokens;
using System.IdentityModel.Tokens.Jwt;
using System.Security.Claims;
using System.Text;
namespace SeuProjeto.Controllers
{
@felipebastosweb
felipebastosweb / Blazor_Registro_Autenticacao_JWT_Consulta.razor
Created November 18, 2025 23:03
Código de exemplo que registra um usuário na API, faz login e acessa endpoints restritos
// ... Seção HTML/Razor Markup Omitida ...
@code {
// Modelo de credenciais (usado para Login/Registro)
private SeuProjeto.Controllers.AuthController.CredenciaisModel model = new();
private List<SeuProjeto.Controllers.GamesController.Game> _games = new();
private string? _authMessage; // Mensagem de feedback de autenticação
private bool _authSuccess;
private bool _isLoading;
private string? _fetchMessage; // Mensagem de feedback da API protegida
@felipebastosweb
felipebastosweb / Blazor_JWT_Identity_CORS.cs
Last active November 18, 2025 23:01
Código necessário para tornar uma aplicação Blazor Server em API Controller com Autenticação com JWT e CORS para mobile
// Autenticação de Usuários com Identity
builder.Services.AddDefaultIdentity<IdentityUser>(
options => options.SignIn.RequireConfirmedAccount = true
)
.AddEntityFrameworkStores<ApplicationDbContext>();
// API Controllers
builder.Services.AddControllers();
@felipebastosweb
felipebastosweb / django_model_filter_date_by_range.py
Created July 24, 2025 21:07
Dica de Filtro no Django ORM por intervalo de datas
from datetime import datetime, timedelta
from django.utils import timezone
# Calculando a data de 15 dias atrás
data_inicio = timezone.now() - timedelta(days=15)
data_fim = timezone.now()
# Filtrando e ordenando os registros
pastas_modificadas = PastaAluno.objects.filter(
data_modificacao__range=(data_inicio, data_fim)
@felipebastosweb
felipebastosweb / django_model_field_datetime_null.py
Last active July 23, 2025 22:49
Forma de garantir que o campo DateTime irá aceitar null
# Model
class Funcionario(models.Model):
matricula = models.CharField(max_length=7, default="0000000")
nome = models.CharField(max_length=200)
# ...
assuncao = models.DateField(auto_now=False, auto_now_add= False, null=True, blank=True, default= None)
admissao = models.DateField(auto_now=False, auto_now_add= False, null=True, blank=True, default= None)
encerramento = models.DateField(auto_now=False, auto_now_add= False, null=True, blank=True, default= None)
"""
@felipebastosweb
felipebastosweb / django_model_charfield_choices_example.py
Last active July 24, 2025 21:31
Exemplo de identificação das opções do atributo/campo na view
class Funcionario(models.Model):
SEXO_CHOICES = [
("NAOINFORMADO", "Não Informado"),
("FEM", "Feminino"),
("MAS", "Masculino")
]
genero = models.CharField(max_length=50, choices=SEXO_CHOICES, default = ("NAOINFORMADO", "Não Informado"))
CONTRATACAO_CHOICES = [
("ESTATUTARIO", "Servidor Estatutário"),
("CLT", "Servidor CLT"),
@felipebastosweb
felipebastosweb / Gravar_audio.py
Last active June 8, 2025 04:43
Grava audio do microfone para juntar no vídeo
import sounddevice as sd
import numpy as np
# Define as configurações do microfone (ajuste conforme necessário)
sample_rate = 44100 # Taxa de amostragem padrão
channels = 1 # 1 para mono, 2 para estéreo
@felipebastosweb
felipebastosweb / Opencv_multicam_one_window.py
Created June 8, 2025 04:08
Exibir várias cameras na mesma janela usando opencv
import cv2
import numpy as np
# Camera indices
camera_indices = [0, 1]
# Create capture objects
@felipebastosweb
felipebastosweb / RateLimit.cs
Created June 6, 2025 22:41
Rate Limite em C# segundo o Gemini
/*
Em Blazor, rate limit (limitação de taxa) é a prática de restringir a frequência com que uma ação pode ser repetida dentro de um determinado período. É usado para proteger contra uso excessivo e ataques de força bruta, limitando o número de solicitações ou ações que um usuário (ou um cliente) pode fazer num determinado período de tempo.
Exemplos e Implementação:
1. Limitar o número de tentativas de login:
Se um usuário tenta fazer login muitas vezes com uma combinação incorreta de nome de utilizador/senha, o sistema pode bloquear temporariamente o acesso daquele utilizador.
Em Blazor, isso pode ser implementado verificando o número de tentativas de login recentes para um determinado endereço IP ou utilizador e bloqueando se exceder o limite.
2. Limitar o número de chamadas API:
Se um usuário está fazendo muitas chamadas a uma API, o sistema pode estar a ser sobrecarregado.
Para evitar isso, pode-se configurar um limite de chamadas por segundo, minuto ou hora.