Net-Base Magazin

10.04.2026

REST-szerver-architektúra Delphi segítségével vállalatok számára

Az API-k értéke csak akkor bontakozik ki, ha az üzleti logika, a jogosultságok, az adatmodell és az üzemeltetés együttesen kerülnek megtervezésre.

10.04.2026

A magazintémától a projektgyakorlatig

A bejegyzéshez tartozó szolgáltatási és technikai oldalak

Sok vállalat ma hasonló kiinduló helyzet előtt áll: egy felhalmozódott szakalkalmazás (gyakran Delphi/VCL) lefedi a központi folyamatokat, de hirtelen új csatornákat kell kiszolgálnia. Egy Kundenportal adatokat és műveleteket vár, a mobil felhasználók biztonságos hozzáférést, harmadik rendszerek (ERP, DMS, CRM, BI) integrációkat követelnek. Ilyen helyzetben egy REST-API logikus lépésnek tűnik. A gyakorlatban az API-kezdeményezések ritkán buknak el HTTP-n vagy JSON-on — sokkal inkább a kliens, szerver és adatkezelés közötti felelősségmegosztás bizonytalansága miatt.

Fenntartható REST-Server-architektúra Delphi-vel nem úgy jön létre, hogy „ráteszünk néhány végpontot” a meglévő adatbázistáblákra. Akkor jön létre, ha a vállalat közösen tekinti át a szakmai szabályokat, biztonsági követelményeket, az adathoz való jogokat, tranzakciós határokat és az üzemeltetési koncepciókat. A REST-szerver így stabil szerződésréteggé válik a szaklogika és a fogyasztók között: asztali kliens, portál, szolgáltatások, interfészpartnerek. Pont itt mutatkoznak meg Delphi erősségei: gyors fejlesztés, robusztus futtatókörnyezet, nagy teljesítményű natív kód, jó adatbázis-kapcsolat (például BDE-Ablösung natív csatlakozással) és a lehetőség, hogy a szaklogikát kontrolláltan könyvtárakba vagy szervermodulokba csomagoljuk.

Ez a cikk leírja, hogyan tervezzék a vállalatok REST-Server-eket Delphi-del úgy, hogy szakmailag konzisztens maradjanak, illeszkedjenek a meglévő rendszerlandscapekhez és üzem közben ne váljanak hibaforrássá. Kiemelten foglalkozunk architekturális elvekkel, a modernizációs projektek tipikus buktatóival és konkrét építőelemekkel a biztonság, adat-hozzáférés, verziókezelés és observability terén.

Miért jelent architekturális döntést egy REST-API a vállalaton belül

Hagyományos kliens-szerver világban sok szabály implicit módon az asztali kliensben volt elosztva: validálások, állapotváltások, számítások, részben jogosultságok is. Amíg csak egy kliens létezett, ez nem volt kritikus — szakmailag nem ideális, de kezelhető. Amint több fogyasztó fér hozzá ugyanahhoz az üzleti objektumhoz, a modell összeomlik:

  • Egy portál nem tudja „újrahasználni” a kliens-validációkat.
  • A mobilalkalmazások offline-képesek akarnak lenni, de nem szabad, hogy duplikálják a szakmai szabályokat.
  • Integrációk stabil, verzionált szerződéseket és egyértelmű hibaszemiantikát igényelnek.
  • A megfelelőség (compliance) nyomonkövethető hozzáféréseket, szerepmodellt és auditálhatóságot követel.

Az API lesz az a pont, ahol a szaklogika, a jogosultságok és az adathozzáférés találkoznak. Ennek architektúrája eldönti, hogy a rendszer hosszú távon bővíthető marad-e — vagy csak új technikai adósságot termel.

Delphi mint platform REST-szerverekhez: erősségek és tipikus alkalmazási minták

Delphi-et a vállalatok gyakran az asztali alkalmazásokkal azonosítják. REST-szerverekhez azonban szintén nagyon alkalmas, különösen, ha a meglévő szaklogika újrahasználata vagy teljesítménykritikus szolgáltatások a cél. Tipikus alkalmazási minták B2B környezetben:

  • API-réteg meglévő szoftverhez: a meglévő Delphi-szakalkalmazás UI-ként megmarad, míg a REST-szerver kapszulázza az adat-hozzáférést és a szabályokat az új fogyasztók számára.
  • Backend portál-/ügyfélterülethez: webportál REST-végpontokat használ, amelyek ugyanazt a szabálymagot alkalmazzák, mint a belső folyamatok.
  • Integrációs és interfészszerver: ERP/DMS/CRM csatlakoztatás, import/export, eseményfeldolgozás, időzített feladatok.
  • Linux-Services vagy Windows-Services: hosszabb futamidejű folyamatok, queue-worker-ek, ütemezők, dokumentum-workflow-k.

Döntőbb a diszciplína a rétegezésben, a párhuzamosság kezelésében, a hibakezelésben és a telepítésben, mint a framework megnevezése. Delphi mindkettőt lehetővé teszi: gyorsan szállítható iterációkat és ugyanakkor tiszta, moduláris architektúrát — ha tudatosan terveznek.

Schichtenmodell: Layer-3 architektúra, mint alap a tartós API-khoz

Vállalati szoftverekhez egy tiszta, karcsú rétegmodell vált be. Delphi környezetben ezt gyakran Layer-3 architektúraként írják le. A terminológia változhat, de a felelősségnek egyértelműnek kell lennie:

1) API-/Transport-layer (HTTP, serializáció, routing)

Ez a réteg foglalkozik a HTTP-vel, protokollszerinti autentikációval, kérés/válasz formátumokkal, routinggal, státuszkódokkal, Content-Type-tal, tömörítéssel. Itt nem szabad szakmai szabályokat elhelyezni. Cél: cserélhetőség és tesztelhetőség. Ha később kiegészítő protokollokra (pl. WebSocket, gRPC-szerű minták, Server-Sent Events) bővítik az API-t, a szakmagarány stabilnak kell maradnia.

2) Domain-/Service-layer (szaklogika, use case-ek, jogosultságok, tranzakciók)

Itt él a szakmai igazság: állapotgépek, számítások, érvényességi vizsgálatok, bérlőszabályok, jogosultság-ellenőrzések szakmai műveletekre. Ennek a rétegnek függetlennek kell lennie az UI-tól és lehetőleg HTTP-ismeretek nélkül kell működnie. Ideális esetben use case-eket implementálnak, például „Megrendelés jóváhagyása”, „Jegy lezárása”, „Számla létrehozása”, nem csak CRUD műveleteket a táblákon.

3) Data-Access-Layer (repository-k, SQL, FireDAC, mapping)

Ez a réteg csomagolja a perzisztenciát: SQL, stored procedure-ök, tranzakciókezelés, zárolási koncepciók, connection-pooling, adatbázis-specifikus sajátosságok. Delphi környezetben gyakran pragmatikus választás BDE-Ablosung mit nativer Anbindung-re, különösen migrációk (például BDE-Ablösung) és heterogén adatbázisok (SQL Server, PostgreSQL, MariaDB, Firebird) esetén. Fontos, hogy a Data-Access-Layer ne tartalmazzon HTTP-ismeretet és ne hozzon üzleti döntéseket.

Ez a modell csökkenti a csatolást: az adatmodell változásai nem kényszerítik ki az API teljes újraírását, és az új kliensek automatikusan öröklik ugyanazt a logikát. Különösen a Delphi Modernisierung során ez az alapja annak, hogy a felhalmozódott asztali alkalmazásokat lépésenként szétkapcsolják anélkül, hogy az üzem leállna.

API-tervezés vállalati szoftverhez: nem CRUD, hanem szakmai szerződések

Sok API úgy indul, hogy végpontokat hoznak létre, mint /customers, /orders, /documents és CRUD-ot valósítanak meg. Ez belső eszközöknél néha elegendő, vállalati szoftvernél azonban gyorsan felszínessé válik. A szakfolyamatok állapotváltásokból, szabályokból, mellékhatásokból és jogosultságokból állnak.

Erőforrások, műveletek és állapotok tiszta modellezése

Egy jobb minta a resources és a jól definiált műveletek kombinációja, például:

  • Erőforrás lekérése: GET /orders/{id}
  • Művelet indítása: POST /orders/{id}/release
  • Dokumentum létrehozása: POST /orders/{id}/documents/invoice
  • Állapot ellenőrzése: GET /orders/{id}/status

Így az API-szerződésben láthatóvá válik, hogy a „jóváhagyás” nem egyszerű mezőfrissítés. A szerver központosítva megvalósíthat validálásokat, jogosultságokat, tranzakciókat, auditot és mellékműveleteket.

Hibaszemiantika és validáció: tervezhetővé tenni a kliensek számára

A vállalati klienseknek meg kell tudniuk különböztetni a hibákat: validációs hiba (400), jogosultság hiánya (403), párhuzamos módosításból adódó konfliktus (409), szakmai elutasítás (gyakran 409 vagy 422), ideiglenes backend-probléma (503). Fontos a konzisztens hibastruktúra, például hibakód, üzenet, opcionális mezői hivatkozások és egy korrelációs azonosító. Így a portál érthető visszajelzést tud adni, és egyszerűsíthető a support és az üzemeltetés nyomozása.

Biztonság: autentikáció nem egyenlő autorizációval

B2B környezetben a biztonság ritkán bukik meg a titkosításon; sokkal inkább azon, hogy nincs szétválasztva az identitás, a szerepek és a szakmai jogosultságok. Egy REST-szerver-architektúrának ezért két szintet kell különböztetnie:

Autentikáció (ki az?)

Gyakorlatban token-alapú megoldások jellemzőek (pl. JWT vagy opaque tokenek), TLS-sel és egyértelmű session-stratégiával kombinálva. Döntő fontosságúak: a token élettartama, refresh-mechanizmus, tiltás szerepváltás esetén, valamint annak eldöntése, hogy portálok és belső rendszerek külön Identity Provider-rel rendelkezzenek-e. Delphi-szerverek itt egyszerre működhetnek resource server-ként és – a beállítástól függően – tokenkiadó szerepkörben is. Sok vállalati környezetben a meglévő identitásrendszerekbe (pl. AD/LDAP, SSO-megoldások) való integráció kulcskérdés.

Autorizáció (szabad-e megtennie?)

Az autorizáció a Domain-/Service-layerben van a helye. A szerepek és jogosultságok ritkán tisztán technikai jellegűek; függnek a bérlőtől, telephelytől, szervezeti egységtől, szerződéses státusztól vagy a folyamat fázisától. Jó gyakorlat:

  • Szerepmodell (pl. Admin, Ügyintéző, Auditor) alapként
  • Szakmai szabályok („számlát csak X státuszban lehet létrehozni”, „csak a saját jegyeit láthatja”)
  • Mandantképesség alapértelmezésként: minden kéréshez tenant-kontextus szükséges
  • Auditálás: ki, mikor milyen műveletet indított

Az API-nak nem csak „hozzáférés engedélyezve/elutasítva” választ kell adnia, hanem következetesen meg kell akadályoznia, hogy paramétertrükkökkel más tenantok adatai láthatóvá váljanak. Ez magától értetődőnek hangzik, de felhalmozott rendszerekben az egyik leggyakoribb architekturális hiba, amikor túl gyorsan „táblákat tesznek HTTP-re”.

Adathozzáférés FireDAC-vel: tranzakciók, pooling és adatbázis-stratégia

Vállalati alkalmazásoknál az adathozzáférés a stabilitás sarokköve: terhelési csúcsok, deadlockok, hosszú riportok, párhuzamos frissítések, batch-importok. FireDAC a Delphi-ökoszisztémában bevált építőelem, amely egységes hozzáférést biztosít különböző adatbázisokhoz. REST-szerver-architektúránál különösen az alábbi pontok döntőek:

Tranzakciós határok use case-enként

Egy REST-API tipikusan request-alapú. Ez jól illeszkedik a „tranzakció use case-ként” elvhez: egy kérés alatt megnyitunk egy tranzakciót, végrehajtunk szakmai műveleteket, majd commit/rollback. Fontos: nem szabad minden végpontot automatikusan tranzakcióba csomagolni, de író műveleteknél következetesnek kell lenni. Olvasó végpontoknál szintén szükség lehet tranzakciókra az izolációs szint függvényében, ha konzisztens nézetek kellenek.

Kapcsolatstratégia és párhuzamosság

A szerver párhuzamosságot jelent: sok egyidejű kérés, mindegyik DB-hozzáféréssel. Érdemes ezért tervezni:

  • korlátozott, felügyelt poolméreteket
  • lefedési időkorlátokat (timeout) lekérdezésekre és csatlakozásokra
  • világos szabályokat a hosszú futamidejű műveletekre (kivinni job-okba/worker-ekbe)

Egy gyakori hiba az, ha erőforrásigényes riportokat vagy tömeges exportokat szinkron módon futtatnak ugyanazon API-példányon, amely interaktív portálkéréseket szolgál ki. Jobb a szétválasztás: interaktív vs. batch/async.

Adatbázismodernizáció az API-tervezés részeként

Ha a legacy-ben még régi adat-hozzáférések vannak (például BDE), az API katalizátorrá válik: rákényszerít a tiszta adathozzáférési határokra. Egy kontrollált átállás FireDAC-re csökkenti a kockázatokat és növeli a hordozhatóságot (PostgreSQL, MariaDB, SQL Server). Fontos, hogy ezt ne „Big Bang”-ként tervezzük, hanem lépcsőzetesen: az új szerver-use case-ek már az új Data-Access-Layer-t használják, míg az örökség darabjai fokozatosan követik.

Verziózás és visszafelé kompatibilitás: az API-szerződések védelme

A vállalatok gyakran alábecsülik, milyen költségesek a breaking change-ek. Amint egy ügyfélportál, partner-rendszer vagy egy Windows- und Linux-Services az Ön API-jára épít, többé nem lehet „gyorsan” mezőneveket átnevezni. Egy tiszta verzióstratégia ezért kötelező.

Pragmatikus szabályok verziózásra

  • Nincs breaking change verzió nélkül: mezőket ne nevezzenek át/távolítsanak el, végpontokat ne értelmezzenek át.
  • Bővíteni, ne módosítani: új mezőket adjon hozzá, a régieket deprekálja.
  • Kompatibilis alapértelmezett értékek: kerülje az új kötelező mezőket vagy szerezzen be server-oldali értéket.
  • Explicit verziózás: pl. /v1/… vagy header-en keresztül; fontosabb a következetesség, mint a módszer.

Delphi-csapatok számára ez azt is jelenti: a DTO-kat stabilan kell tartani és a mappingot tudatosan kialakítani, ahelyett, hogy a domain-objektumokat 1:1 serializálják. Ez kezdetben többletmunkát jelent, de hosszú távon csökkenti a supportköltségeket.

Observability: logok, metrikák és trace-ek már a kezdetektől

Üzemelő vállalati környezetben az a „nálam működik” értéktelen, ha a hibák nem reprodukálhatók. Különösen a REST-szerverek, amelyek sok fogyasztót szolgálnak ki, minimum observability-t igényelnek:

Strukturált naplózás korrelációs azonosítóval

Minden kérésnek legyen korrelációs azonosítója (átvenni a bejövőből vagy létrehozni) és az meg kell jelennie a logokban. A logbejegyzések legyenek strukturáltak (pl. JSON-log), hogy központi rendszerekbe be lehessen őket emelni. Legalább a következő releváns adatok:

  • Kérés módszere, útvonala, státuszkódja, időtartama
  • Felhasználó-/tenant-környezet (pseudonimizálva/szabálykövetően)
  • Adatbázis-végrehajtási idő és hhibakategória
  • Korrelációs ID a supporthoz

Metrikák kapacitásra és hibatrendekre

Skálázás és stabilitás érdekében metrikák kellenek: kérések/perc, p95/p99 késleltetések, hibaarányok végpontonként, DB-pool kihasználtság, queue-hosszak. Nem szükséges „cloud-native overkill”, de számok nélkül a teljesítményvita pusztán véleménykérdés marad.

Hiba- és kivételkezelés mint architekturális építőelem

Delphi-kivételök (Exceptions) nem eshetnek átellenőrzés nélkül a kliensre. Egy központi Exception-middleware (vagy globális handler) le kell, hogy fordítsa a kivételeket konzisztens hibaválaszokká, beleértve a support-ID-t és a megfelelő HTTP-kódokat. A stacktrace-ek belső, biztonságos logokba kerüljenek, ne a kliensválaszokba.

Szinkron vs. aszinkron: hosszú futamidejű folyamatok kivitele a REST-válaszon kívül

Sok vállalati folyamat nem „kérés/válasz 200 ms alatt”: PDF-generálás, adatimport, interfészfutások, egyeztetések, tömeges módosítások, archiválás. Ezek a munkaterhelések ritkán valóak egy szinkron REST-végpontba, mert fogják a thread-eket, időkorlátokat okoznak és blokkolják a felhasználót.

Job-minta

Bevált megoldás: egy végpont elindít egy jobot, a szerver azonnal visszaad egy job-ID-t. Egy másik végpont szolgáltat státuszt/eredményt. Lehetőség van callback/webhook használatára is. Delphi-ben ezt worker-szolgáltatásokkal, egy job-táblával és világos státuszgéppel meg lehet valósítani. Az előny: stabilitás és tervezhető skálázhatóság.

Queue-k és szolgáltatások

Környezettől függően egy üzenetsor (message queue) hasznos lehet, de nem kötelező. A fontos elv: az interaktív API-k maradjanak válaszkészek, a batch-folyamatok kontrolláltan, ismételhetően és megfigyelhetően fussanak — mint Windows-Services vagy Linux-Services, a deployment-től függően.

Telepítés vállalaton belül: Windows, Linux, konténerek, on-prem

Egy REST-szerver-architektúra csak akkor „kész”, ha üzemeltethető. A vállalatok nagyon eltérnek: klasszikus Windows-szerverek, virtualizált Linux-hostok, konténerplatformok, szigorú hálózati zónák, proxy- és tanúsítványkövetelmények. Delphi ebben rugalmas, ha a függőségeket tisztán kezelik.

Konfiguráció és titkok

A konfigurációnak környezetfüggőnek kell lennie (Dev/Test/Prod). Hozzáférési adatok nem kerülhetnek EXE-be vagy verziókezelőbe. Használjon biztonságos tárolást (pl. az adott platform secrets-management-je) és válassza szét a konfigurációs értékeket a kóreladásoktól. Tervezzék meg a rotációkat (DB-jelszó, API-keyek) úgy, hogy ne kelljen újraépíteni a rendszert.

Release- és rollback-stratégiák

Ha több fogyasztó függ az API-tól, kontrollált releas-ekre van szükség: migrációs scriptek az adatbázisváltozásokhoz, feature-toggle-ök a fokozatos aktiváláshoz, egyértelmű rollback-útvonalak. Különösen az adatbázisváltozásoknak visszafelé kompatibilisnek kell maradniuk, ha a szerververzió rollbackje lehetséges.

Integráció a meglévő szoftverrel: lépésről lépésre történő modernizáció a Big Bang helyett

Sok Delphi-landscapeben a szakmai mag értékes, de technikailag „összeragadt”: UI-közeli adat-hozzáférések, globális állapotok, kevert felelősségek. Egy REST-API itt egyszerre jelent kockázatot és lehetőséget. A cél egy olyan útvonal legyen, amely mérsékelt erőfeszítéssel mérhető javulást hoz.

Strangler-approach API-khoz

Ahelyett, hogy mindent egyszerre átírnának, definiáljanak szakmai interfészpontokat, amelyek valódi értéket adnak: pl. „megrendelés állapota és dokumentumok ügyfélportálhoz”, „törzsadat-keresés mobil felhasználóknak”, „ERP könyvelési interfész”. Ezeket a use case-eket új API-funkcióként valósítják meg, beleértve a Domain-layer-t és a Data-Access-t. A régi kliens lépésről lépésre átállhat ugyanazokra a szerver-use case-ekre anélkül, hogy a UI-t azonnal újra kéne építeni.

Közös szaklogika: hasznos, de kontrolláltan

Delphi lehetővé teszi, hogy a szaklogikai könyvtárakat mind a szerver, mind a meglévő alkalmazások használják. Ez hidat jelenthet, de veszélyeket is rejt: ha UI-függőségek beszivárognak a közös logikába, elveszik az entkoppolás előnye. Egyértelmű szabály: közösen használható csak az a logika, amely UI-mentes, globális állapotoktól mentes, jól definiált interfészekkel és tesztelhető egységekkel rendelkezik. Minden más marad külön.

Tipikus hibák REST-szerver projektekben — és hogyan kerülje el őket

„Egyszerűen publikáljuk a táblákat”

Ha a végpontok közvetlenül tükrözik a táblákat, instabil rendszer jön létre: minden DB-refaktor breaking change-et jelent az API számára, a szakmai szabályok duplikálódnak a kliensekben, és a paraméterek miatt biztonsági rések jöhetnek létre. Jobb: domain-use case-ek és DTO-k, amelyek stabilizálják a szerződést.

Szakmai jogosultságok csak a kliensben

A kliensek cserélhetők és manipulálhatók. Az autorizációnak a szerveren van a helye, és szakmai szabályokat kell figyelembe vennie, nem csak technikai szerepeket.

Nincs világos stratégia a párhuzamosság kezelésére

Párhuzamos frissítések előfordulnak: két ügyintéző, portál és belső kliens, vagy egy importjob. Optimistic Locking (pl. RowVersion/Timestamp), konfliktuskódok (409) és egyértelmű merge-szabályok nélkül adatvesztés vagy „az utolsó ír nyer” típusú hibák lépnek fel.

Hosszú futamidejű feladatok blokkolják az interaktív végpontokat

Szinkron PDF-előállítás vagy exportok időkorlátokhoz és „beragadó” élményhez vezetnek. Jobb a job-patttern státusz-végpontokkal.

Observability utólagos hozzáerőszakolása

Korrelációs azonosító, strukturált logok és metrikák nélkül minden zavaró esemény kutatómunka lesz. A megfigyelhetőség nem luxus, hanem üzemeltetési előfeltétel.

Konkrét ellenőrzőlista az Ön REST-szerver architektúrájához Delphi-del

  • Rétegek egyértelmű szétválasztása: transport (HTTP), domain (use case-ek), data access (FireDAC/SQL).
  • API mint szerződés: DTO-k stabilan tartása, verziózás tervezése, breaking change-ek kerülése.
  • Kétlépcsős biztonság: autentikáció (token) plus autorizáció (szakmai policy-k, tenant).
  • Tranzakciók tudatos alkalmazása: use case-enként, timeoutok, konfliktusstratégia.
  • Hosszú futamidők aszinkron kezelése: jobok/worker-ek, Windows vagy Linux-szolgáltatások.
  • Observability beépítése: korrelációs ID, strukturált logok, metrikák, központi hibakezelés.
  • Telepítés reálisan tervezve: konfiguráció/titkok, rollback, adatbázis-migrációk.
  • Iteratív modernizáció: értékes use case-ek először, örökség fokozatos entkoppolása.

Következtetés: REST-szerverek értékét csak üzemeltetési és szakmai architektúra mentén fejti ki

REST-szerver-architektúra Delphi-del akkor különösen hatékony vállalatoknál, ha nem „technikai felületként” értelmezik, hanem összekötő magként a folyamatok, adatok és csatornák között. Döntő a tiszta rétegezés (Layer-3 architektúra), a szakmailag modellezett végpontok, a következetes biztonsági és tenant-logika, valamint egy olyan üzemeltetési modell, amely verziózást, monitoringot és kontrollált párhuzamosságot biztosít. Így az API stabil platformmá válik: portálok, integrációk, szolgáltatások és a lépésenkénti Delphi Modernisierung számára — anélkül, hogy egy felhalmozódott rendszer szakmai tartalmát kockáztatná.

Ha szeretnék áttekinteni, hogyan lehet egy megbízható REST-API-t felépíteni az Ön meglévő Delphi-környezetére (beleértve az adatbázis-stratégiát, FireDAC-et, szolgáltatásokat és üzemeltetést), elérnek minket itt: https://net-base-software-gmbh.de/kontakt/

Következő lépés

Ha a téma valós projektté válik, az architektúrát, a meglévő rendszert és az üzemeltetést már korán együtt kell értékelni.

Nemcsak egyedi kérdésekben támogatunk, hanem akkor is, amikor forráskódrészletekből, örökölt rendszerekkel kapcsolatos témákból vagy portálötletekből robusztus vállalati projektet kell kialakítani.

  • A jelenlegi állapotot, a célállapotot és a műszaki kockázatokat együttesen értékeljük.
  • REST, az adathozzáférés, a portálok és a Rollout nem kerülnek utólagos teendőkként elhalasztásra.
  • Már korán láthatja, melyik út gazdaságilag és üzemeltetési szempontból életképes.

Bejegyzés megosztása

Ezt a bejegyzést közvetlenül megosztani

LinkedIn, X, XING, Facebook, WhatsApp és e-mail azonnal elérhetők. Instagramhoz linket és rövid szöveget közvetlenül előkészítünk.

E-mail

Az Instagram egy új lapon nyílik meg. A link és a rövid szöveg előzetesen a vágólapra másolódik.