Posts

Showing posts with the label spring

VERSIONING DELLE API IN SPRING BOOT

Image
Ogni API evolve: nuovi requisiti, cambiamenti nei modelli di dati, funzionalità deprecate. Senza una strategia di versionamento, ogni modifica rischia di diventare una breaking change per chi consuma i tuoi servizi. Il versioning delle API è la risposta a questo problema: permette di introdurre cambiamenti in modo controllato, garantendo la continuità per i client esistenti e la libertà di innovare per il team di sviluppo. In questo articolo esploreremo quattro diverse strategie di API versioning: URI versioning Request parameter versioning Custom Header versioning Content-negotiation Versioning URI Versioning Questa strategia prevede l'aggiunta della versione all'interno dell'URL delle API. Sebbene sia facilmente realizzabile e immediatamente comprensibile, non è la sicuramente la più elegante. @RestController @RequestMapping("/api/v1/orders") public class OrderV1Controller { @GetMapping public String getOrdersV1() { return "Order list from A...

RATE LIMIT, REDIS E SPRING BOOT

Quando un microservizio si integra con un servizio esterno, uno dei rischi più comuni è quello di superare il rate limit imposto dal provider. Molte API pubbliche e private adottano meccanismi di API throttling per proteggere le proprie risorse e garantire un uso equo, definendo soglie come ad esemoio  max 5000 chiamate al giorno o x chiamate al minuto . Il problema In uno scenario reale, il nostro microservizio - dove per nostro intendo creato e manutenuto dal gruppo di lavoro in cui svolgo la mia attività - effettuava chiamate verso un servizio esterno con un limite massimo di 5000 richieste giornaliere. Sebbene il carico previsto fosse ampiamente inferiore alla soglia, esisteva comunque un rischio legato a: chiamate duplicate da parte del client , retry non controllati , picchi improvvisi , scalabilità automatica del microservizio che poteva moltiplicare le chiamate. Al superamento del limite, il servizio esterno avrebbe restituito errori, compromettendo l’a...

CREARE UN'APPLICAZIONE SPRING BOOT CON DATABASE VETTORIALE POSTGRESQL

Image
In questo articolo, esploreremo come creare un'applicazione Spring Boot che utilizza un database vettoriale PostgreSQL per eseguire ricerche di similarità basate su vettori. Un database vettoriale è un qualsiasi database che ti consente di archiviare, indicizzare ed eseguire query su incorporamenti vettoriali o rappresentazioni numeriche di dati non strutturati, come testo, immagini o audio. Prerequisiti Java 17+ Spring Boot 3+ PostgreSQL 15+ con estensione pgvector Docker (opzionale per eseguire PostgreSQL in un container) Configurazione di PostgreSQL con pgvector Per utilizzare PostgreSQL come database vettoriale, dobbiamo installare l'estensione pgvector . Se usiamo Docker, possiamo eseguire il seguente comando: docker run --name pgvector-db -e POSTGRES_USER=admin -e POSTGRES_PASSWORD=admin -e POSTGRES_DB=vector_db -p 5432:5432 ankane/pgvector Questa immagine Docker include PostgreSQL con pgvector preinstallato. In alternativa, possiamo installare manualmente l...

Popular posts from this blog

QUERY E SPRING DATA

FONDO COMETA: UNA GUIDA COMPLETA AL FONDO PENSIONE DEI METALMECCANICI

JASPER REPORT: CREAZIONE DI PDF IN JAVA

AGGIORNAMENTO INVESTIMENTI 2° TRIMESTRE 2024

QUEI COPIONI DEGLI ETF

STRATEGIE D'INVESTIMENTO A CONFRONTO: DOLLAR-COST AVERAGING VS VALUE AVERAGING

UNA PICCOLA INTRODUZIONE A DART