PostgreSQL a GraphQL: Lliçons de camp

Converteixo PostgreSQL en una API GraphQL dinàmica i segura amb PostGraphile, AppSync i AWS: desplegament a EKS, esquema automàtic i consultes, mutacions i subscripcions.

domingo, 17 de agosto de 2025 • 5 min de lectura • Equip Q2BSTUDIO

Intel·ligència-Artificial-

Introducció: en aquest article basat en Turning PostgreSQL into GraphQL Lessons from the Field comparteixo l'experiència d'integrar PostgreSQL amb GraphQL usant PostGraphile i com això pot ajudar projectes reals de programari a mida.

Sóc Sivvie i vaig documentar aquest experiment mentre treballava en un entorn real. L'objectiu era comprovar si era possible oferir a usuaris finals una interfície GraphQL flexible sobre una base de dades relacional sense sacrificar seguretat ni rendiment.

Què és PostgreSQL: PostgreSQL és un sistema de base de dades relacional de codi obert, conegut per la seva fiabilitat, compliment d'estàndards SQL i extensibilitat. Es pot executar localment, en contenidors o al núvol en serveis com AWS o Azure.

Què és PostGraphile: PostGraphile és un middleware que genera automàticament una API GraphQL a partir d'una base de dades PostgreSQL existent. Permet consultes, mutacions i subscripcions i es pot estendre amb plugins per a lògica personalitzada. És una opció interessant davant d'alternatives com Prisma o Hasura quan es busca treballar directament sobre PostgreSQL.

Requisits i especificació: en aquest projecte necessitàvem permetre que els usuaris creessin taules mitjançant mutacions GraphQL, consultessin lliurement camps, visualitzessin el seu propi esquema, rebessin notificacions per subscripció quan s'inserissin files amb condicions concretes, i poguessin actualitzar i eliminar únicament les seves pròpies taules. A més, el sistema s'havia d'integrar amb serveis cloud i APIs segures.

Procés de pensament: vam crear una base de dades event en un clúster PostgreSQL desplegat a EKS, vam aixecar un servidor PostGraphile amb JavaScript i vam comprovar que en la primera prova ja podíem consultar i mutar dades des de GraphQL. Va ser un senyal clar que el plantejament era viable.

Reflectir canvis a la base de dades: el principal repte va ser que els esquemes GraphQL solen ser estàtics, mentre que la base de dades havia de ser dinàmica. PostGraphile disposa d'una opció per vigilar canvis a PostgreSQL i regenerar l'esquema automàticament. Activant aquesta funcionalitat s'instal·len triggers que notifiquen al servidor per reconstruir l'esquema segons els canvis reals a la base de dades.

Desplegament al núvol: vam embolicar l'aplicació PostGraphile en una imatge Docker i la vam desplegar a EKS. El contenidor exposa el servidor PostGraphile dins de l'ecosistema AWS, cosa que facilita integrar-lo amb altres serveis gestionats.

Exposició segura al client: com que PostGraphile no és una API pensada per exposar endpoints públics directament, vam buscar una capa d'interfície segura. A AWS vam utilitzar AppSync com a porta d'entrada GraphQL gestionada, cosa que va permetre controlar accessos i combinar resolvers amb lògica personalitzada sense exposar internament el servei directament al client.

Integració amb AppSync: AppSync accepta funcions lambda com a resolvers. Vam dissenyar tres funcions lambda que actuaven com a pont entre AppSync i PostGraphile: converter per adaptar la petició del client al format que entén PostGraphile, responder per transformar la resposta abans de retornar-la, i updater per gestionar canvis dinàmics a l'esquema i orquestrar l'actualització a AppSync.

Gestió de tipus i compatibilitat: algunes diferències de tipus entre esquemes generats per PostGraphile i el format esperat per AppSync van exigir normalitzacions. Es va valorar crear un plugin de PostGraphile per generar directament un esquema compatible, però també era possible transformar peticions i respostes als resolvers. Vam optar per una solució que equilibra manteniment i netedat de disseny.

Pipeline d'actualització d'esquema: cada vegada que PostGraphile detectava un canvi d'esquema a la base de dades, el servidor regenerava l'esquema i el pujava a un bucket a S3. Un watcher sobre S3 disparava la funció updater que actualitzava l'esquema a AppSync. Aquesta doble canalització va permetre que AppSync tingués l'esquema actualitzat en qüestió de segons.

Suport per a consultes, mutacions i subscripcions: la solució suporta queries, mutations i subscriptions respectant les limitacions pròpies d'AppSync i PostGraphile. En proves amb l'aplicació web les respostes i els canvis a l'esquema es van reflectir amb baixa latència i bona experiència d'usuari.

Disseny final: el flux general va incloure PostgreSQL a EKS, PostGraphile en un pod Docker, sincronització d'esquema cap a S3 i exposició pública a través d'AppSync amb resolvers lambda que actuaven com a converter, responder i updater. Això va permetre oferir una API GraphQL dinàmica sobre una base de dades relacional amb control i auditoria.

Conclusió: va ser un projecte desafiant i molt formatiu. Vam aprendre a combinar el millor de PostgreSQL i GraphQL amb infraestructures cloud per oferir APIs flexibles i segures. La solució no és l'única possible ni definitiva, però demostra que és viable construir serveis GraphQL dinàmics sobre bases relacionals per a casos d'ús reals.

Sobre Q2BSTUDIO: a Q2BSTUDIO som una empresa de desenvolupament de programari que ofereix aplicacions a mida i programari a mida pensat per resoldre desafiaments concrets de negoci. Som especialistes en intel·ligència artificial, ciberseguretat i serveis cloud AWS i Azure. Entre les nostres capacitats s'inclouen serveis d'intel·ligència de negoci, implementació de solucions d'intel·ligència artificial per a empreses, desenvolupament d'agents IA i dashboards amb Power BI per millorar la presa de decisions.

Si la teva organització necessita aplicacions a mida segures i escalables o vol incorporar intel·ligència artificial i IA per a empreses en els seus processos, a Q2BSTUDIO dissenyem solucions integrades que combinen millor pràctica en ciberseguretat, desplegaments cloud a AWS o Azure i anàlisi avançat amb serveis d'intel·ligència de negoci com Power BI.

Paraules clau per posicionament: aplicacions a mida, programari a mida, intel·ligència artificial, ciberseguretat, serveis cloud aws i azure, serveis intel·ligència de negoci, ia per a empreses, agents IA, power bi.

Si t'interessa replicar aquesta arquitectura o explorar alternatives com plugins de PostGraphile, integracions amb Hasura o Prisma, o dissenyar una solució a mida amb Q2BSTUDIO, podem ajudar-te a avaluar opcions, dissenyar l'arquitectura i executar el projecte fins a producció.

Comiat: gràcies per llegir aquesta síntesi pràctica. Espero que aquestes lliçons et resultin útils per convertir PostgreSQL en una API GraphQL dinàmica i segura en els teus projectes de programari a mida.

UNA PAUSA?

Juga una estona abans de marxar

ELS NOSTRES SERVEIS

Com et podem ajudar

Tens un projecte en ment?

Explica'ns la teva visió i la convertim en una solució de programari. Sigui quin sigui l'abast, fem realitat la teva idea.