Aquesta setmana he estat gairebé tota la setmana fora per un viatge de feina. Hem visitat uns clients amb qui feia força temps que no ens vèiem presencialment, i la veritat és que és tan necessari i va tan bé! Des del primer dia que ens vam conèixer, ara fa uns nou anys, hi ha hagut molt bona sintonia, i així continua. Ha estat una visita molt productiva, amb treball intens, explicació de noves funcionalitats i, perquè no dir-ho, bons menjars 😋.
També aquesta setmana ha entrat en vigor un canvi normatiu important al sector elèctric: la nova versió dels fitxers d’intercanvi per processos ATR. Aquest canvi s’ha pogut fer ràpid i sense problemes perquè tot l’equip ha treballat de valent prèviament, fent totes les proves i preparant la documentació interna per migrar. Totes les empreses van ser migrades el mateix dilluns i van poder operar amb normalitat des del primer moment. Bona feina! 💪
Començo amb algunes recomanacions,
💾 Programari
Si estàs buscant una alternativa lliure a Google Photos per allotjar fotos en el teu propi servidor, dona un cop d’ull a immich. No l’he instal·lat, però he estat provant el servidor de demostració i és espectacular! 🚀
🤔 Curiositats
Crec que ja he vist DOOM a tot arreu, però ara arriba DOOM dins Google Sheets. Aquí el que realment m’impressiona és l’enginy per fer-lo funcionar i les possibles aplicacions que pot tenir.
📦 Recursos
Si vols aprendre SQL però d’una forma diferent, prova SQL Noir. En aquest joc-resolució de crims, aniràs aprenent SQL mentre investigues casos misteriosos 🕵️♂️.
🌟 El concepte
En el número #38 de Vermutech, vaig parlar de les versions d’API i de com gestionar els canvis en els serveis que exposem a través de la web. Avui continuo amb el tema d’APIs, però aquesta vegada centrant-me en una peça fonamental de la comunicació entre client i servidor: els codis d’estat HTTP.
Quan fas una petició a una API o a qualsevol pàgina web, el servidor sempre respon amb un codi d’estat HTTP. Aquests números de tres xifres indiquen si la petició ha tingut èxit, si cal seguir una redirecció, si el client ha fet alguna cosa malament o si el servidor ha explotat. I encara que semblin només detalls tècnics, si no es fan servir correctament, poden convertir la integració amb una API en una experiència frustrant.
📡 Classificació dels codis HTTP
Els codis HTTP es divideixen en cinc grans categories:
1xx – Informatius: Indiquen que la petició s’ha rebut i el procés continua.
100 Continue
: El servidor ha rebut la petició i espera més informació.103 Early Hints
: Dona pistes abans de la resposta final.
2xx – Èxit: Tot ha anat bé!
200 OK
: La petició s’ha completat correctament.201 Created
: S’ha creat un nou recurs (com un usuari o un registre en una API).204 No Content
: La petició s’ha processat, però no cal retornar cap dada.
3xx – Redireccions: El client ha de seguir un altre camí.
301 Moved Permanently
: El recurs s’ha mogut de manera permanent.302 Found
: El recurs s’ha mogut temporalment.304 Not Modified
: El recurs no ha canviat des de l’última vegada que es va sol·licitar.
4xx – Errors del client: Alguna cosa no està bé en la petició.
400 Bad Request
: La sol·licitud és incorrecta o està mal formada.401 Unauthorized
: Falta autenticació.403 Forbidden
: No tens permís per accedir-hi.404 Not Found
: No s’ha trobat el recurs (l’error que tots hem vist més d’una vegada).418 I’m a teapot
: Una broma convertida en llegenda… (ara t’explico 👇).
5xx – Errors del servidor: Quan el problema ve del backend.
500 Internal Server Error
: Alguna cosa ha fallat a l’altre costat.502 Bad Gateway
: Un servidor ha rebut una resposta invàlida d’un altre servidor.503 Service Unavailable
: El servei està inactiu temporalment.504 Gateway Timeout
: El servidor no ha rebut resposta a temps.
💡 Feu servir els codis HTTP on toca!
Integrar APIs pot ser una experiència fluida o un desastre absolut segons com s’hagin dissenyat. A GISCE-TI, més d’una vegada ens hem trobat APIs que no feien servir correctament els codis d’estat.
El cas més surrealista? Una API que retornava un 200 OK, però dins el cos de la resposta hi havia un JSON amb un atribut status
que deia 500
🤯. Això no només és confús, sinó que trenca tota la semàntica del protocol HTTP. Si una API ha de retornar un error, ha d’utilitzar el codi HTTP correcte! No l’enterreu dins el body
, per favor… 🙏
🤖 I’m a teapot – L’error més absurd (i estimat)
Dins dels errors 4xx, hi ha un codi que ja és part de la història d’Internet: el 418 I'm a teapot
.
Aquest codi es va introduir el 1998 com a part del Hyper Text Coffee Pot Control Protocol (HTCPCP), un protocol fictici que es va proposar com a broma per controlar cafeteres via HTTP. Si un servidor retornava 418 I'm a teapot
, volia dir que no podia preparar cafè perquè era una tetera.
Tot i ser una innocent broma d’April Fools', molts sistemes encara el conserven, i serveis com Google o Node.js tenen referències a aquest codi. Alguns desenvolupadors l’han adoptat per retornar respostes iròniques o rebutjar sol·licituds absurdes.
Si vols veure una representació visual d’aquest codi (i de molts altres errors HTTP), hi ha una web que converteix cada codi HTTP en un gat: http.cat. Fes la prova amb el 418
aquí:
👉 https.cat/418
Si vols veure tots els codis HTTP oficials i la seva descripció, consulta la documentació de MDN aquí:
🔗 Referència de codis d'estat HTTP – MDN
💖 Feedback
Si t’ha agradat i em vols ajudar, fes arribar aquest contingut a qui creguis que li pot interessar, i entra al canal de Telegram per comentar la publicació.