We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder
We leren & delen

ACA Group Blog

Lees meer over onze inzichten en meningen over diverse onderwerpen, nuttige inzichten en advies van onze experts.

Uitgelicht

20 JAN. 2023
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Kickstart je volgende project met een kant-en-klare webapplicatie-architectuur
Leestijd 6 min

Het starten van een nieuw webproject kan een ontmoedigende taak zijn met veel verschillende onderdelen om rekening mee te houden en te configureren. Voor ontwikkelaars kan het zeker handig zijn om toegang te hebben tot een startpunt voor het bouwen van webapps, met alle benodigde bestanden en configuraties al ingesteld. Het bespaart niet alleen veel tijd en moeite in vergelijking met wanneer je alles vanaf nul moet opbouwen, het verhoogt ook de productiviteit en maakt klanten blij omdat ze veel sneller tastbare resultaten kunnen zien. Bij ACA Group doen we veel van dergelijke implementaties en de volgende vereisten zijn gemeenschappelijk voor de meeste webapplicatieprojecten: Een geweldige gebruikerservaring: een snelle, responsieve en vlotte frontend die flexibel genoeg is om elk soort gebruikersinteractie te implementeren Betrouwbare en performante verwerking: een solide database en backend oplossing die gemakkelijk uitbreidbaar, testbaar, onderhoudbaar en begrijpbaar is voor elke ingenieur Gebruikersauthenticatie en -beveiliging: een robuuste en volwassen authenticatieserver die ook SSO en gebruikersfederatie heeft en integreert met veel verschillende providers Eenvoudige en veilige implementatie: toch eenvoudig te ontwikkelen zonder al te veel overhead Ons antwoord op deze terugkerende eisen is een flexibele softwarebasis die out of the box werkt. Met een paar regels in de terminal kun je een nieuw project opstarten dat alle bovenstaande functionaliteiten in een basistoestand heeft, wachtend om uitgebreid en uitgebouwd te worden. De figuur hieronder illustreert de basis van de architectuur die we vaak gebruiken voor kleine en middelgrote webapplicaties, en de verschillende services die een rol spelen. Natuurlijk zijn er nog andere componenten in het spel, maar die worden vaker per geval geïmplementeerd. Backend Laten we beginnen met het brein van de webapplicatie - de backend. Voor ons Python-team is het niet meer dan logisch om deze taal te gebruiken om de ruggengraat van de applicatie te bouwen. FastAPI biedt veel flexibiliteit in termen van hoe je bedrijfslogica en ontwerppatronen implementeert. Het is ook een van de best presterende backend-oplossingen die je kunt kiezen in Python; het heeft geweldige documentatie en wordt ondersteund door een solide community. Een populaire keuze voor projecten met data-analyse, machine learning of AI, een Python backend maakt het gemakkelijker om geavanceerde technologieën dichter bij de gebruiker te brengen. Frontend Voor het ontwerpen van de gebruikerservaring - of de frontend - geven we de voorkeur aan Angular , een volwassen en goed onderzocht JavaScript-framework dat overal in de industrie wordt gebruikt. Het is ontworpen om eenvoudig interactieve webapplicaties van één pagina te maken die in elke moderne webbrowser kunnen draaien. Angular heeft ook een gevestigde reputatie op het gebied van goede prestaties en schaalbaarheid, waardoor het risico op schaalbaarheidsproblemen bij grotere projecten afneemt. Een ander voordeel is dat Angular gestructureerd is en veel lijkt op backend code, waardoor het makkelijker te begrijpen is voor niet-frontend ontwikkelaars. Database en opslag Voor gegevensopslag is PostgreSQL een veelgebruikt en betrouwbaar databasemanagementsysteem (DBMS) dat zeer geschikt is voor verschillende toepassingen, waaronder webontwikkeling. Het staat bekend om zijn prestaties, vooral als het gaat om het verwerken van grote hoeveelheden gegevens. Het kan complexe query's efficiënt verwerken en heeft de reputatie goed te kunnen schalen naarmate de grootte van de database toeneemt. Het is ook rijk aan functies en heeft verschillende opties voor indexering en query optimalisatie. Beveiliging en verificatie Onze beveiligde authenticatieserver is gebouwd op Keycloak , een volwassen IAM-oplossing die organisaties helpt hun applicaties en diensten te beveiligen. Het is niet alleen open-source, maar ook gesponsord door 's werelds leider op het gebied van open source voor bedrijven, RedHat. Het biedt een enkel toegangspunt voor gebruikers om zichzelf te authenticeren en toegang te autoriseren tot verschillende bronnen; en het ondersteunt een breed scala aan authenticatiemechanismen, zoals gebruikersnaam en wachtwoord, twee-factor authenticatie en social login. Infrastructuur Het volgende stukje van de puzzel is NGinx , dat al het inkomende verkeer orkestreert en verdeelt over de services. Het is een krachtige en flexibele webserver en reverse proxy die vaak wordt gebruikt om inkomende klantverzoeken veilig en met hoge prestaties af te handelen. Het staat bekend om zijn vermogen om een groot aantal gelijktijdige verbindingen af te handelen met een laag gebruik van bronnen, en is vooral efficiënt bij het serveren van statische inhoud zoals afbeeldingen, CSS en JavaScript-bestanden. Nginx kan verzoeken van clients doorsturen naar een of meer services, waarbij het verkeer eenvoudig naar de juiste component van de webapplicatie wordt geleid en de belasting over meerdere servers of services wordt verdeeld, zelfs als ze dezelfde rol vervullen. Dit betekent ook dat alle verschillende services uitsluitend via NGinx communiceren met SSL/TLS protocollen, waardoor al het verkeer wordt versleuteld en gevoelige gegevens worden beveiligd. Implementatie Tot slot vergemakkelijkt Docker de implementatie en ontwikkeling. Door de verschillende onderdelen van de app te containeriseren, zoals de backend of de database, wordt het veel eenvoudiger om de app op verschillende hostingomgevingen te implementeren. Dit is vooral belangrijk als klanten verschillende eisen hebben op het gebied van hostingmachines, infrastructuur, enzovoort. Met Docker kunnen de services van de app op een gestandaardiseerde manier worden verpakt en vervolgens consistent worden ingezet in verschillende omgevingen. Docker heeft ook voordelen voor het beheren van de app in productie. Door componenten in containers te plaatsen, kun je eenvoudig op- of afschalen, updates en rollbacks uitrollen en de gezondheid van de app bewaken. Dit kan helpen om de betrouwbaarheid en onderhoudbaarheid van de app te verbeteren. Voor ontwikkelaars maakt Docker het ook makkelijker om de app in verschillende omgevingen te testen, samen te werken met teamleden en taken zoals het bouwen, testen en uitrollen van de app te automatiseren. Kickstart een nieuw project 👊 Het doel van deze architectuur is om een startpunt te bieden voor het bouwen van een webapplicatie met alle benodigde componenten al geconfigureerd. We hebben het verpakt in een sjabloon dat alles bevat wat je nodig hebt om te beginnen, zodat je niet vanaf nul een startarchitectuur hoeft te bouwen. In plaats daarvan kunt u de sjabloon gebruiken als basis en deze vervolgens aanpassen aan uw specifieke behoeften. Om deze template te gebruiken, hebben we gekozen voor een tool genaamd Cookiecutter. Het hoeft maar één keer geïnstalleerd te worden door de persoon die de initiële repository opzet om een nieuw project te maken op basis van een sjabloon van de bovenstaande architectuur. Als onderdeel van dit proces worden een paar waarden gevraagd om het sjabloon aan te passen, zoals de naam van het project, het e-mailadres van de beheerder, welke functies je wilt inschakelen, enzovoort. Zodra je Cookiecutter hebt gebruikt om de projectmap aan te maken, bevat deze alles wat je nodig hebt om de webapplicatie te bouwen en uit te voeren. Om met de app aan de slag te gaan, kun je een eenvoudig Docker-commando uitvoeren en de webapplicatie is in een mum van tijd klaar voor gebruik. Dit maakt live ontwikkeling op elk deel van de applicatie mogelijk met hot reload, en maakt de implementatie zo eenvoudig als een paar klikken. Conclusie Al met al kan een kant-en-klare webapplicatie-architectuur zoals beschreven in deze blog een waardevol hulpmiddel zijn om tijd en moeite te besparen op elk nieuw project. Door een solide basis te bieden voor het bouwen van een webapplicatie, kan het teams helpen om snel een MVP op te starten, zonder vanaf nul te hoeven beginnen. De combinatie van de bovenstaande technologieën bespaart niet alleen tijd en moeite, maar geeft je ook het vertrouwen dat je app goed is uitgerust voor een breed scala aan behoeften.

Lees verder

Alle blogs

liferay verkoop kick-off 2025
liferay verkoop kick-off 2025
Leestijd 4 min
8 MEI 2025

Van 3 tot 5 februari verwelkomde Liferay zijn wereldwijde teams en partners in Athene voor de Liferay Sales Kickoff (SKO) . Tijdens dit jaarlijkse evenement presenteert Liferay haar strategische richting en nieuwe features voor het komende jaar. Liferay SKO is de plek waar sales, marketing en partners samenkomen om inspiratie op te doen, inzichten te delen, best practices te bespreken en nieuwe innovaties binnen Liferay te ontdekken. ACA Group was ook aanwezig om onze strategische samenwerking verder te bespreken en verschillende gezamenlijke initiatieven te initiëren. Benieuwd naar de meest opvallende aankondigingen van Liferay Sales Kickoff 2025? Ontdek ze hieronder! * Disclaimer: De onderstaande informatie en aankondigingen zijn gebaseerd op de huidige inzichten en plannen van Liferay en zijn onder voorbehoud van wijzigingen. Nieuwe functies en producten kunnen nog worden gewijzigd of uitgesteld. Liferay PaaS Premium Beveiliging Liferay's SaaS platform was al uitgerust met een geavanceerde AI-gestuurde firewall die zijn effectiviteit herhaaldelijk heeft bewezen. Door middel van verschillende case studies heeft Liferay laten zien hoe dit slimme beveiligingssysteem moeiteloos miljoenen aanvallen blokkeert, dit alles zonder enige tussenkomst van partners of klanten. Nu brengt Liferay deze bewezen beveiligingstechnologie naar het PaaS-platform! Met het Hyper Security Pack krijgen PaaS-gebruikers toegang tot dezelfde krachtige bescherming die SaaS-gebruikers al genieten. Wat is inbegrepen? 🔹 ML DDoS-bescherming - Robots tegen robots! De AI-gestuurde DDoS-bescherming van SaaS is nu beschikbaar voor PaaS. 🔹 Bots blokkeren - Geavanceerde filters scheiden mensen van machines en bieden regionale configuratieopties. 🔹 Schaalbaarheidsverzekering - Liferay schaalt automatisch mee met uw DXP zonder extra kosten. 🔹 Kwetsbaarheidsmeldingen - Onmiddellijke waarschuwingen voor kritieke kwetsbaarheden, plus hulp bij patchen. 🔹 Verwerking van kwetsbaarheidsrapporten - Dien uw beveiligingsrapport in bij Liferay en ontvang een geprioriteerde lijst met actie-items. Voor SaaS-gebruikers is deze bescherming standaard inbegrepen, terwijl PaaS-gebruikers dit pakket als add-on kunnen toevoegen. Liferay Digital Days: training en evenementen voor klanten Liferay lanceert Digital Days ! Deze hands-on trainingen laten u kennismaken met de nieuwste functies. Maar dat is nog niet alles, want Liferay gaat in 2025 ook met de Customer Summit World Tour de wereld rond! Deze grootschalige evenementen brengen partners en klanten samen en bieden de perfecte gelegenheid om je onder te dompelen in de nieuwste trends, inzichten en mogelijkheden binnen Liferay. Teaser Showcases tonen Liferay's USP's ACA heeft al meerdere Liferay-omgevingen om de eindeloze mogelijkheden van het platform te demonstreren. Nu maakt Liferay dit nog makkelijker. Met 8 Teaser Showcases kunnen we nu de unique selling points (USP's) van Liferay op een duidelijke en aansprekende manier presenteren aan potentiële klanten. Deze Teaser Showcases zijn de perfecte aanvulling op bestaande producttesten en gepersonaliseerde demo's, zodat klanten in hun eigen tempo de mogelijkheden van Liferay kunnen verkennen. Liferay CMS: een kleine maar krachtige nieuwe toevoeging De Liferay familie groeit! Later dit jaar lanceert Liferay een nieuw Liferay CMS , een lichter alternatief voor het uitgebreide Liferay DXP. Hoewel deze kleinere versie niet alle functies van Liferay DXP zal bevatten, is het de perfecte oplossing voor kleinere projecten die een krachtig en flexibel CMS nodig hebben. Nog niet alle details zijn beschikbaar, maar ACA volgt de ontwikkelingen op de voet. We hebben er alle vertrouwen in dat Liferay CMS een waardevolle toevoeging zal zijn aan ons productportfolio. Liferay blijft groeien Liferay blijft indruk maken met zijn wereldwijde groei! Het partnernetwerk is nu uitgebreid tot 400 partners wereldwijd , met een sterke focus op de EMEA-markt . Op productniveau maakt Liferay ook grote stappen. In het Gartner Magic Quadrant blijft het platform oprukken naar de Leaders categorie, een bewijs van zijn kracht en innovatie. Bovendien staat Liferay nu in de top drie van DXP Customer Choice-platforms van Gartner, naast Adobe en Pimcore. Het is een erkenning van het vertrouwen en de waardering van gebruikers wereldwijd. Veel meer nieuwe functies voor Liferay DXP Liferay introduceerde ook tal van nieuwe functies voor het Liferay DXP platform. Hoogtepunten zijn onder andere: Aanpasbare Content Editor: Pas de editor aan aan de behoeften van uw project. Geavanceerde export/export: Een verbeterde import/export functionaliteit met staging ondersteuning en gedetailleerde foutrapportage. Camunda integratie: Soepele tweerichtingsintegratie met Camunda voor een betere workflowautomatisering. Cloud Native Ervaring: Extra tools om zelf gehoste Liferay DXP moeiteloos te draaien op AWS, Google Cloud of Azure . AI Wizard : Een slimme AI-assistent die snel pagina's, blogs en media maakt. Upload een schetsfoto en de wizard genereert een complete paginastructuur met fragmenten! Intelligent zoeken: De zoekfunctie van Liferay krijgt een grote upgrade. Naast het klassieke zoeken op trefwoorden is er nu een krachtige semantische zoekmachine, volledig aanpasbaar aan uw behoeften. Nieuwsgierig naar Liferay's toekomstplannen? Bekijk hun openbare roadmap op https://liferay.com/roadmap. Aan de slag met de nieuwe Liferay updates? Met deze nieuwe ontwikkelingen tilt Liferay zijn platform naar een hoger niveau, waardoor het veiliger, gebruiksvriendelijker en aantrekkelijker dan ooit wordt voor zowel partners als klanten. Voor ACA is het een fantastische kans om onze marktpositie te versterken en optimaal gebruik te maken van deze innovaties. Wilt u weten hoe deze updates uw organisatie ten goede kunnen komen? Wij denken graag met u mee! Neem contact met ons op!

Lees verder
Liferay bijwerken
Liferay bijwerken
Leestijd 13 min
6 MEI 2025

ACA is al vele jaren Liferay Partner en is zelfs de enige Liferay Platinum Partner in België. Een van de voordelen van dit partnerschap is dat we nieuwe producten kunnen bekijken en beoordelen in een pre-release versie. Onlangs ontvingen we een pre-release versie van de nieuwe Liferay DXP 7.2, die net begin juni is gelanceerd. Hier volgt een korte samenvatting van wat Liferay wil bereiken met deze nieuwe versie: In deze nieuwe release wil Liferay het makkelijker maken voor de niet-technische gebruiker om een soepele klantervaring te creëren . Het realiseert dit door nog meer tools en updates van al bestaande tools te bieden. Een andere belangrijke upgrade is het feit dat Audience Targeting nu is opgenomen in de kern van Liferay . Hierdoor hebben Audience Targeting en gebruikerssegmentatie een betere integratie met alle content building functionaliteiten in Liferay. Liferay richt zich op privacy met verbeteringen aan de Personal Data Erasure functie geïntroduceerd in Liferay DXP 7.1. Moderne website bouwen Er zijn een aantal grote verbeteringen in de manieren waarop niet-technische gebruikers nog betere gebruikerservaringen kunnen bieden, iets wat Liferay sinds Liferay DXP 7.1 het Modern Site Building project noemt . De nieuwe functies hebben betrekking op Content Pages , Display Pages , Fragments , Navigation Menus en Pages Administration . Inhoud Pagina's Naast een verbeterde visuele weergave van de content pagina's, zijn er ook verschillende upgrades van de styling mogelijkheden voor zakelijke gebruikers. Zakelijke gebruikers kunnen nu... achtergrondkleuren, afbeeldingen, spatiëring en meer aanpassen voor secties op de inhoudspagina. een indicatief beeld krijgen van de lay-out van een inhoudspagina terwijl ze deze maken. Met de sectiebouwer aan de rechterkant kunnen verschillende soorten lay-outs worden toegevoegd aan de inhoudspagina. Verschillende lay-outs komen uit de doos, ontworpen door Liferay zelf, en bieden verschillende hoeveelheden kolommen. Pas lay-outs aan tijdens het gebruik en met betrekking tot de specifieke context van een pagina. Met behulp van een bootstrap-achtige visuele weergave kan de breedte van de kolommen eenvoudig worden aangepast door de kolommen te verslepen. Het is nu ook mogelijk om de lay-out te voorzien van een achtergrondkleur of zelfs een afbeelding. Pas het aantal kolommen, de spatiëring, opvulling, marge en meer aan dankzij het kleine optiemenu. Om deze lay-outs te vullen, biedt Liferay verschillende basiscomponenten die Fragmenten worden genoemd. Deze Fragmenten bestaan uit verschillende HTML-basiscomponenten zoals verschillende soorten kopteksten, tekstvelden, knoppen, afbeeldingen en kaarten (waar sommige basiscomponenten al zijn gegroepeerd). Er zijn ook verschillende voorgedefinieerde secties die lay-outs en componenten combineren tot complexere componenten, die klaar zijn om aan de pagina te worden toegevoegd. Er zijn verschillende soorten kop- en voetteksten, banners, een highlight center en nog veel meer! Het mooie van al deze componenten is dat ze kunnen worden gekoppeld aan een Web Content Item. Elk veld van het contentitem kan worden gebruikt voor de elementen in het component. Hierdoor kan de gebruiker de content op één plaats onderhouden (het content management gedeelte van de site) en deze, of delen ervan, hergebruiken in verschillende content pagina's. Sinds Liferay DXP 7.1 konden zakelijke gebruikers widgets toevoegen aan Content Pages. Een ontwikkelaar moest een Fragment maken dat de widget bevatte, die een zakelijke gebruiker vervolgens kon configureren. Met de upgrade naar Liferay DXP 7.2 zijn zakelijke gebruikers echter in staat om elke widget direct aan elk fragment toe te voegen, zodat ze gebruik kunnen maken van bijvoorbeeld de asset publisher, web content display, alerts, wiki, blogs, ... Al deze updates worden nu uitgevoerd binnen de context van de actuele pagina. De styling en vaste onderdelen zoals kop- en voetteksten en het gedrag van het thema worden direct toegepast op de inhoudspagina. Een zakelijke gebruiker kan ze bewerken terwijl hij er als eindgebruiker naar kijkt, wat een realistischere ervaring van contentbewerking oplevert. Pagina's weergeven Alle bovenstaande wijzigingen voor Content Pages gelden ook voor Display Pages, omdat ze op dezelfde bouwstenen zijn gebaseerd. De belangrijkste update hier is de mogelijkheid voor een ontwikkelaar om ondersteuning voor Display Pages toe te voegen in aangepaste entiteiten. Door middel van implementatie kunnen ontwikkelaars webmasters de nodige opties bieden om specifieke weergavepagina's voor het item te selecteren. Webmasters krijgen dan een keuzelijst te zien om te selecteren welke Displaypagina moet worden gebruikt. Fragmenten We hebben Fragmenten al eerder genoemd als bouwstenen voor het samenstellen van Content en Display Pages. Ze worden meestal gemaakt door een webontwikkelaar en gebruikt door de webmaster. Ze worden gedefinieerd door een HTML-blok samen met CSS en eventueel JavaScript voor dynamisch gedrag. Liferay heeft de Fragment Editor, die te vinden is in het Configuratiescherm, verbeterd om deze Fragmenten te ontwikkelen. De Fragment Editor biedt nu ook een vorm van code voltooiing voor de standaard lfr tag bibliotheek. Het Fragment kan ook worden voorzien van een resource of een verzameling resources die in het Fragment kunnen worden gebruikt. Dit zijn in feite afbeeldingen waarnaar kan worden verwezen op naam, hetzij in het Fragment zelf of in de ondersteunende CSS (bijvoorbeeld voor de achtergrondafbeelding). De offline ontwikkeling voor Fragmenten is ook gemakkelijker gemaakt door Liferay via de Fragment Toolkit. Dit is een nieuwe npm tool voor het genereren van een Fragment module, die offline ontwikkeling van een Fragment in een IDE naar keuze mogelijk maakt. De Fragment module kan ook worden toegevoegd aan de codebase van het project en worden uitgerold op alle omgevingen. Navigatie Menu's Liferay DXP 7.1 introduceerde Navigatie Menu's om sitenavigatie los te koppelen van de pagina hiërarchie. Er zijn enkele verbeteringen aangebracht in het licht van: het verplaatsen van pagina's in de hiërarchie; het selecteren van zowel publieke als private pagina's voor het menu; het toevoegen van de optie 'verborgen' voor pagina's, zodat pagina's in geen enkel navigatiemenu worden getoond; het automatisch toevoegen van een pagina aan een navigatiemenu. Pagina Beheer Om gemakkelijk door pagina's te kunnen navigeren terwijl u ze bewerkt, heeft Liferay de optie toegevoegd om pagina's gemakkelijker te zoeken en te vinden door middel van een zoekbalk in de pagina administratie voor zoeken op tekst; de Page Navigation tool in de dockbar voor Site administrators, die nu een dropdown menu met zoekfunctionaliteit biedt; verbeteringen in de visualisaties van de paginahiërarchie en -structuur. Inhoud bewerken Terwijl bovenstaande updates betrekking hebben op het schrijven van pagina's, zijn er ook verbeteringen aan het schrijven van content zelf. Een van deze verbeteringen omvat nu de mogelijkheid voor webmasters om een overzicht te zien van het gebruik van het Content Item . Dit gebruik wordt bepaald door de portlets Web Content Display en Asset Publisher, maar ook door het gebruik in Fragmenten via Content Pages en Display Pages. Webmasters kunnen nu dus duidelijk zien waar in de site eventuele wijzigingen gevolgen hebben voor de eindgebruiker. Een andere verbetering is dat het nu makkelijker is voor webmasters om een voorbeeld van de webinhoud te bekijken in alle fasen van de workflow en in verschillende contexten. Gebruikers kunnen verschillende sjablonen selecteren, de voorvertoning van een paginasjabloon bekijken en binnen een pagina is het contentitem al toegevoegd. Er zijn ook updates geweest op het gebied van de contentstructuur en templates. Vanaf Liferay DXP 7.2 en nieuwer is het niet langer nodig om een sjabloon te selecteren voor een Content Item . Zoals hierboven besproken kunnen Content Items gebruikt worden in Fragmenten voor Content Pages en Display Pages. Dit betekent dat het mogelijk is dat het Content Item niet langer wordt vertegenwoordigd door een sjabloon. Tot slot is de weergave voor het maken van een structuur en het bewerken van een Content Item bijgewerkt . Het ziet er nu netter uit, met een duidelijke scheiding tussen content en metadata. Audience Targeting Met Liferay DXP 7.2 bevat de Liferay core de Audience Targeting module. De Audience Targeting module zorgt voor betere en nog meer integratiepunten met andere kernfunctionaliteiten van Liferay. Vanwege deze verandering is een klein migratieproces noodzakelijk voor huidige Audience Targeting klanten . Dit zou een semi-automatisch datamigratieproces moeten zijn met behoud van bestaande segmentaties. De Audience Targeting module zelf is verplaatst naar buiten het Control Panel en is nu te vinden onder Site People Segments . Over segmenten gesproken, het is nog steeds mogelijk om segmenten te definiëren op basis van regels. Regels kunnen worden gemaakt op basis van User properties, Organization properties en Session properties. Veel hiervan zal bekend klinken voor de Audience Targeting-klant. Een leuke aanpassing is dat Custom Fields nu direct toegankelijk zijn vanuit het menu. Klanten die gebruik maken van Liferay Analytics Cloud zullen ook blij zijn om te horen dat vanaf nu de segmenten die gedefinieerd zijn in Analytics Cloud hergebruikt kunnen worden in Liferay DXP . Dit betekent dat segmentatie in DXP nu direct gebaseerd kan worden op de gebruikersinformatie of het gedrag en de interesses verzameld in Liferay Analytics Cloud. Vanwege de integratie van Audience Targeting in de Liferay core, hebben de Liferay ontwikkelaars ook verschillende API's beschikbaar gesteld om informatie over gebruikerssegmentatie te verkrijgen. Hierdoor kunnen externe applicaties die gebruik maken van Liferay content management mogelijkheden ook gebruikerssegmentatie toepassen. Informatie die kan worden opgevraagd zijn onder andere de segmenten van een site, de segmenten waartoe een gebruiker behoort en zelfs de gebruikers die tot een segment behoren. Gepersonaliseerde ervaringen Het gebruik van gebruikerssegmenten in Content Pages is ook beschikbaar voor het bieden van gepersonaliseerde ervaringen . Bij het ontwerpen van Content Pages kan een webmaster de secties en de inhoud differentiëren op basis van gebruikerssegmenten. Met de nieuwe optie Experience Administration kunnen deze ervaringen worden gemaakt en beheerd via een eenvoudige UI. De volgorde van de Gepersonaliseerde Ervaringen is hier belangrijk omdat het de prioriteit aangeeft. Als een gebruiker tot meerdere doelgroepen en dus meerdere ervaringen behoort, wordt degene met de hoogste prioriteit (top-down) toegepast. Helaas wordt deze ervaringspersonalisatie niet toegepast op de portlet Web Content Display wanneer deze aanwezig is op de Content Page. Deze portlet toont altijd hetzelfde Content-item, ongeacht de geselecteerde ervaring. Inhoudsets Een andere nieuwigheid in het licht van Audience Targeting is de definitie van Content Sets. Dit is een verzameling Content Items die kunnen worden hergebruikt op de site pagina's met behulp van de Asset Publisher portlet . Bij het maken van een nieuwe contentset worden de contentitems die er deel van uitmaken statisch of dynamisch gedefinieerd door regels te definiëren. U kunt deze regels differentiëren met behulp van gebruikerssegmenten. Net als bij Gepersonaliseerde ervaringen voor inhoudspagina's kunnen contentsets verschillende regels bevatten op basis van de gebruikerssegmenten. In deze context worden ze Personalized Variations genoemd, maar de functionaliteit is vrijwel hetzelfde. Hoewel het onduidelijk is of hier enige prioriteit wordt toegepast. Deze contentsets zijn ook beschikbaar via de headless API, dus ze kunnen buiten Liferay worden gebruikt om inhoudsvariaties te verkrijgen op basis van het gebruikerssegment. Een eigenaardigheid die ik tegenkwam toen ik Audience Targeting bekeek, is dat wanneer gebruikerssegmenten worden gemaakt, deze niet meer beschikbaar zijn voor het categoriseren van Content Items. In eerdere versies was het mogelijk om de gebruikerssegmenten te gebruiken als een soort categorisatie voor contentitems. Onder 'Metadata' verscheen een nieuwe sectie genaamd 'User Segments' zodra de gebruikerssegmenten waren gedefinieerd. Echter, gezien de mogelijkheden van segmentatie in Content Sets, Content Pagina's en Display Pagina's, heeft Liferay dit gebruik van gebruikerssegmenten waarschijnlijk gewoon weggelaten. DMS functies Liferay's Document Management mogelijkheden hebben ook een upgrade gekregen. Er is nu een integratie met Google Docs beschikbaar , zodat dit soort documenten gemaakt en bewerkt kunnen worden binnen de Google context. Het document wordt uiteindelijk opgeslagen in de Liferay DMS zelf. Je moet een Google Drive API aanmaken voor je project en die informatie in Liferay opgeven om de integratie met Google Docs te starten. Voor alle niet-Google gebruikers zijn er ook andere belangrijke updates doorgevoerd in de 'gewone' DMS functies van Liferay, voornamelijk met betrekking tot het delen van bestanden, versiebeheer van bestanden en bulk editing. Bestanden delen Documenten en Media kunnen nu worden gedeeld met andere gebruikers in de portal , zelfs als ze geen lid zijn van de Site waarin het item is gedefinieerd. De ontvangende gebruiker ziet niets van de Site waarin het document is aangemaakt. Je kunt ze ook rechten geven voor Commentaar of Bijwerken in plaats van alleen de rechten voor Bekijken . Als je de optie Toestaan dat het document wordt gedeeld met andere gebruikers selecteert, geef je de ontvangende gebruiker de macht om dit document verder te delen. De gebruiker met wie je een document deelt, wordt hiervan op de hoogte gesteld via het notificatiesysteem van Liferay. U kunt alle gedeelde inhoud vinden in het gebruikersprofiel menu. Op dit moment is er nog geen specifieke portlet beschikbaar om alle gedeelde content te tonen. Technisch gezien is het belangrijk om te weten dat er geen nieuw document wordt aangemaakt bij het delen. Liferay heeft ervoor gekozen om een nieuwe tabel aan te maken in de database die deze informatie over het delen tussen items en gebruikers bevat. Na het delen van een document is het ook mogelijk om de toegang van gebruikers tot het document in te trekken of de rechten te beheren vanuit het informatiepaneel van het document onder de link Collaborateurs beheren . Versiebeheer van bestanden Webmasters kunnen nu handmatig een nieuwe versie selecteren wanneer ze een document bewerken . Onder het tabblad Versiebeheer is er een nieuw toegevoegde schuifbalk om de handmatige selectie van versiebeheer te activeren. De gebruiker kan beslissen en een nieuwe hoofdversie of een nieuwe kleine versie opgeven, of kan zelfs kiezen om helemaal geen versie-upgrade uit te voeren. Bij elke selectie is het ook mogelijk om commentaar te geven om andere gebruikers te informeren, of gewoon voor toekomstige referentie, welke aanpassingen er zijn gemaakt of waarom de geselecteerde optie is gekozen. Als de activeringsschuif is uitgeschakeld, wat de standaardinstelling is, past Liferay zijn automatische versiebeheersysteem toe. Dit systeem heeft op zijn beurt ook enkele updates gekregen en zal nu altijd volgens de volgende regels spelen: een grote upgrade wordt gemaakt als de feitelijke inhoud is veranderd. een kleine upgrade wordt gemaakt als de metadata is veranderd. in alle andere gevallen is er geen versie-upgrade. bijv. alleen het bewerken van tags, categorieën, rechten of opmerkingen. Interessant om weten is dat deze regelset kan worden uitgebreid omdat er een Versioning Policy API is geïntroduceerd. Door een aangepaste component te ontwikkelen en te implementeren, kunnen de criteria worden aangepast. Een nog ontbrekende schakel voor versiebeheer is dat deze opties niet beschikbaar zijn bij het bewerken met de afbeeldingseditor. Bulkbewerking De laatste grote update in het Liferay DMS systeem is de beschikbaarheid om tags voor documenten in bulk te bewerken . Op dit moment is het bewerken van tags de enige optie, maar Liferay heeft beloofd in de nabije toekomst ook categorisatie aan te bieden. Na het selecteren van een of meer documenten in de Documenten Media Galerij, verschijnt de optie Tags bewerken in de werkbalk. Dit opent een modaal dialoogvenster waarin alle opties en gedeelde tags worden weergegeven. Door Bewerken te selecteren , beheren webmasters alleen de opgesomde tags, door er een of meer te verwijderen of nieuwe toe te voegen voor alle geselecteerde documenten. De optie Vervangen past alleen de lijst met tags toe op alle geselecteerde documenten, wat betekent dat alle niet-gedeelde tags worden verwijderd. Dit laatste is zeer belangrijk om te onthouden omdat het enkele neveneffecten kan veroorzaken waarbij filters op tags plots geen items meer zullen bevatten. Gebruikersbeheer We hebben Audience Targeting en een aantal opvallende updates al besproken. Er zijn echter ook enkele verbeteringen aangebracht aan het individuele gebruikersbeheer. Deze hebben voornamelijk te maken met GDPR en gebruikersgegevensbeheer. In Liferay DXP 7.2 zijn er verbeteringen in de functie om persoonlijke gegevens te wissen en content te anonimiseren . Persoonlijke gegevens kunnen ook worden geëxporteerd en gedownload als een zip-bestand dat verwijst naar de gerelateerde assets. In het onderdeel Gebruikersbeheer zijn deze acties nog steeds te vinden in het contextmenu. Een beheerder krijgt nu een overzichtelijk dashboard om de anonimisering uit te voeren. De inhoud kan worden gescoped op de persoonlijke site, reguliere site of instantie van de gebruiker. De inhoud wordt hiërarchisch weergegeven met filteropties. Dit geeft de beheerder context over de contentitems en waar ze worden gebruikt. De beheerder kan ook selectief persoonlijke gegevens wissen. Op dit moment ondersteunen alleen Documents Media en Message Boards deze nieuwe functionaliteit. Het exporteren van persoonlijke gegevens wordt op dezelfde manier beheerd met een soortgelijk uitziend dashboard. Wanneer het exportproces is voltooid, wordt een overzicht getoond van de verschillende contentitems die afzonderlijk als zip-bestand kunnen worden gedownload. In het proces van auto-anonimisering kan de beheerder nu ook zien welke toepassingen gegevens bevatten die auto-anonimisering ondersteunen. Extra: Kunstmatige intelligentie Liferay is ook begonnen met het omarmen van de kracht van AI. Een voorbeeld hiervan is het automatisch taggen van afbeeldingen . Deze functie vermindert de handmatige handelingen die een webmaster moet uitvoeren en maakt het mogelijk om snel collecties op te bouwen. We zullen zeker meer AI-functionaliteiten zien in de komende releases. De auto-tagging functionaliteit is nog in een vroeg stadium en daarom worden alleen Engelse tags ondersteund. Het is ook standaard uitgeschakeld en moet worden geactiveerd door een beheerder in het configuratiescherm. Dit kan echter op verschillende niveaus worden uitgevoerd: globaal, instantie of site. Naast TensorFlow, dat de standaard provider is, ondersteunt Liferay ook Google CloudVision en Microsoft Cognitive Services. Meenemen Liferay DXP 7.2 biedt een heleboel nieuwe mogelijkheden. Als je het mij vraagt, zijn dit de dingen die er echt uitspringen in deze nieuwe release: documenten delen; prachtige in-context bewerking van Content Pages; integratie van Audience Targeting, met enige voorzichtigheid over hoe het categoriseren van Content Items via Segments zal gebeuren in toekomstige releases; en het koppelen van Content Pages met Web Content Items. Ben je net zo enthousiast over deze nieuwe release als wij? Sluit je dan aan bij ons fantastische team 🙂 Bedankt voor het lezen! Bronnen: https://community.liferay.com/blogs/-/blogs/web-experience-new-features-in-liferay-portal-7-2-b1 https://community.liferay.com/de/blogs/-/blogs/creating-personalized-experiences-with-liferay-7-2 https://community.liferay.com/de/blogs/-/blogs/liferay-portal-7-2-ce-alpha-1-release https://community.liferay.com/de/blogs/-/blogs/liferay-portal-7-2-ce-beta-1-release

Lees verder
liferay wachtwoord
liferay wachtwoord
Leestijd 3 min
6 MEI 2025

Het ongemakkelijke moment waarop je inloggegevens niet werken wanneer je snel wat wijzigingen moet aanbrengen, de verlegenheid van het niet onthouden van de enige beheerdersinlog wanneer je collega ze nodig heeft. Je beheerdersinloggegevens zijn kwijt . Het is waarschijnlijk al velen van ons overkomen. Dit kan erg problematisch zijn wanneer je te maken hebt met de inloggegevens van de standaard beheerdersaccount in Liferay . Dit account, ook bekend als test@liferay.com , wordt vaak gebruikt op test- en ontwikkelingsinstallaties van Liferay. Het verliezen van de credentials voor dit account betekent meestal het verlies van alle controle over Liferay op deze installaties. "Je had deze gegevens ergens moeten documenteren!" (Willekeurige ontwikkelaar) Had gemoeten, had gekund... maar deed het niet. Het is inderdaad waar dat het bijhouden van volledige en correcte documentatie dit soort situaties kan voorkomen . Het hebben van een projectwiki helpt enorm bij het beheren van alle belangrijke informatie die gedeeld moet worden. Ik schrijf deze blogpost echter niet om je alle voor- en nadelen van een wiki te vertellen. Ons wachtwoord is kwijt en we willen het terug, nu meteen! Geen paniek. Naast het proberen te achterhalen van iemand die het wachtwoord wel weet of zelfs het installeren van een nieuwe Liferay, zijn er 2 vrij eenvoudige en rechttoe rechtaan methodes om de controle over je account terug te krijgen. Beide zijn echter afhankelijk van toegang tot Liferay's database, dus hopelijk ben je in ieder geval nog in staat om in te loggen in de database. De eerste methode is om Liferay's ingebouwde passwordEncrypted flag te gebruiken: Ga naar de user_ tabel in de database. Zoek de gebruiker waar je toegang tot wilt krijgen. Stel het veld password_ in op een wachtwoord in platte tekst. Stel het veld passwordEncrypted in op 0. Stel het veld passwordReset in op 1. Start Liferay opnieuw op! Log in. Hiermee kun je eenmalig inloggen met je eigen ingestelde wachtwoord. Liferay zal je vragen om een nieuw wachtwoord in te stellen en dat is alles. U heeft met succes de controle terug! Je wachtwoord wordt automatisch weer versleuteld in de database, dus daar hoef je je geen zorgen over te maken. De tweede methode is wat grover en vereist een tweede Liferay-instantie bij de hand, maar werkt net zo goed: Ga naar de user_ tabel van de tweede instantie, en kopieer het versleutelde wachtwoord van een gebruiker waarvan je het wachtwoord weet. Plak dit wachtwoord in het password_ veld van de user_ tabel van de eerste Liferay instance. Start Liferay opnieuw op! Log in. En opnieuw, groot succes! Deze methode kan handig zijn als onbevoegde ogen je bespioneren. Een wachtwoord zal nooit zichtbaar zijn in platte tekst. Heb je problemen met Liferay? Als de enige Platinum Partner in de Benelux staan we klaar om je te helpen! {% module_block module "widget_cf1d144d-8279-481c-9ccd-60a9faf0cc03" %}{% module_attribute "buttons" is_json="true" %}{% raw %}[{"appearance":{"link_color":"light","primary_color":"primary","secondary_color":"primary","tertiary_color":"light","tertiary_icon_accent_color":"dark","tertiary_text_color":"dark","variant":"primary"},"content":{"arrow":"right","icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"tertiary_icon":{"alt":null,"height":null,"loading":"disabled","size_type":null,"src":"","width":null},"text":"Our Liferay services"},"target":{"link":{"no_follow":false,"open_in_new_tab":false,"rel":"","sponsored":false,"url":null,"user_generated_content":false}},"type":"normal"}]{% endraw %}{% end_module_attribute %}{% module_attribute "child_css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "css" is_json="true" %}{% raw %}{}{% endraw %}{% end_module_attribute %}{% module_attribute "definition_id" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "field_types" is_json="true" %}{% raw %}{"buttons":"group","styles":"group"}{% endraw %}{% end_module_attribute %}{% module_attribute "isJsModule" is_json="true" %}{% raw %}true{% endraw %}{% end_module_attribute %}{% module_attribute "label" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "module_id" is_json="true" %}{% raw %}201493994716{% endraw %}{% end_module_attribute %}{% module_attribute "path" is_json="true" %}{% raw %}"@projects/aca-group-project/aca-group-app/components/modules/ButtonGroup"{% endraw %}{% end_module_attribute %}{% module_attribute "schema_version" is_json="true" %}{% raw %}2{% endraw %}{% end_module_attribute %}{% module_attribute "smart_objects" is_json="true" %}{% raw %}null{% endraw %}{% end_module_attribute %}{% module_attribute "smart_type" is_json="true" %}{% raw %}"NOT_SMART"{% endraw %}{% end_module_attribute %}{% module_attribute "tag" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "type" is_json="true" %}{% raw %}"module"{% endraw %}{% end_module_attribute %}{% module_attribute "wrap_field_tag" is_json="true" %}{% raw %}"div"{% endraw %}{% end_module_attribute %}{% end_module_block %}

Lees verder
Aangepaste objecten bouwen met Liferay 7.2 Headless API’s
Leestijd 7 min
22 FEB. 2020

Deze applicatie is echter niet gekoppeld aan een repository of een back-end applicatie, wat betekent dat ze niets aan hun menu kunnen toevoegen of wijzigen. Dit is behoorlijk lastig: door de huidige pandemie moesten ze overstappen op een leveringssysteem en ze willen hun website regelmatig kunnen bijwerken. Toen je dit kleine scenario hoorde, herinnerde je je net dat je ergens een Liferay 7.2 portaal hebt draaien en je vroeg je af of je, met behulp van de nieuwe headless API's, kon inspringen en hen kon helpen. Nadat u contact had opgenomen met het restaurant, kwam u erachter dat hun eisen vrij eenvoudig waren: Ze hebben een overzicht nodig van hun medewerkers die leveringen kunnen doen en moeten weten wanneer ze een vrije dag hebben. Ze moeten items op hun menu kunnen toevoegen of bewerken. Enter Liferay 7.2 headless API's We schreven al een blogpost om dit onderwerp te introduceren, maar in een notendop zou je kunnen zeggen dat deze headless API's veel van Liferay's ingebouwde functies en inhoud voor het grijpen hebben en klaar zijn voor gebruik in een aangepaste front-end applicatie, smart device, IoT-apparaten, ... Alle beschikbare endpoints van Liferay worden geleverd met swagger documentatie, die je hier kunt vinden. Zoals je kunt zien zijn er veel verschillende domeinen die Liferay voor ons beschikbaar heeft gemaakt. Voor het doel van deze blog zal ik echter een korte blik werpen op de Headless Admin User en Headless Delivery . De vereisten in kaart brengen Het doel van deze oefening is om met zo min mogelijk inspanning te voldoen aan de eisen van onze klant. Dat betekent natuurlijk dat we optimaal gebruik maken van de beschikbare endpoints en de ingebouwde functies van Liferay. Het werknemersoverzicht Dit overzicht zal alleen wat basisinformatie bevatten, zoals: Volledige naam Een e-mailadres Hun vrije dag Of ze al dan niet pizza's kunnen bezorgen Als je de Headless Admin User van dichterbij bekijkt , zie je een endpoint dat alle gebruikersaccounts van een bepaalde site ophaalt: /o/headless-admin-user/v1.0/sites/{siteId}/user-accounts Standaard Als we de werknemers behandelen als gebruikers van een site, kunnen we hun informatie blootstellen aan de Angular-applicatie. Om aan alle vereisten te voldoen, moeten we onze gebruikers verrijken met 2 aangepaste velden: Vrije dag - dit kan een dropdown lijst zijn Pizzabezorger - wat waarschijnlijk een waar/onwaar vlaggetje zal zijn. De headless eindpunten blootleggen Nu we een manier hebben bedacht om aan een van de eisen van het restaurant te voldoen, moeten we ervoor zorgen dat onze Angular-applicatie dit ook daadwerkelijk kan aanpakken zonder geblokkeerd te worden. Hiervoor moeten we een beetje configureren in onze portal: Zoals je in dit voorbeeld kunt zien, heb ik alle eindpunten met betrekking tot headless-delivery en headless-admin-user vrijgegeven. Om voor de hand liggende redenen wilt u dit misschien beperken tot de eindpunten die u wilt blootstellen. Aanvullende informatie over het maken van geauthenticeerde verzoeken kan worden gevonden op de officiële site van Liferay . Relevante informatie ophalen Als we alle gebruikers van onze gewenste site ophalen, krijgen we het volgende antwoord voor elke gebruiker: Zoals u kunt zien bevat dit antwoord alle informatie die we nodig hebben, maar ook veel overbodige informatie. We kunnen het antwoord beperken tot de velden die we nodig hebben door ze toe te voegen aan ons verzoek: /o/headless-admin-user/v1.0/sites/{siteId}/user-accounts?fields=alternateName,customFields,emailAddress,name Standaard Dat resulteert in de volgende respons voor elke gebruiker: Met behulp van deze respons kan de Angular-applicatie het vereiste overzicht genereren: Een nadeel van deze aanpak is dat je beperkt bent tot het domeinmodel van Liferay. Je zult de JSON-respons handmatig moeten parsen of je model moeten afstemmen op dat van Liferay, wat in het geval van deze aangepaste velden een heel gedoe kan zijn. Uw aangepaste objecten maken? Om het werknemersoverzicht te maken, hebben we gebruik gemaakt van de Liferay-gebruikers, die we in dit geval perfect konden afstemmen op de vraag van onze klant. Hoewel Liferay een breed scala aan endpoints biedt die gebruikt kunnen worden om aan de vraag van uw klant te voldoen, zal dit niet altijd het geval zijn. Neem bijvoorbeeld de pizza's op onze menukaart, deze zouden de volgende informatie moeten bevatten: De naam van de pizza Een korte beschrijving Mate van pittigheid Extra toppings Of de pizza wel of niet bezorgd kan worden Er is geen manier om deze informatie te mappen op een bestaand Liferay object. We zullen dus zelf zo'n object moeten maken. Bij voorkeur willen we deze objecten via de headless API ontsluiten met zo min mogelijk inspanning. Aangezien Liferay ons nog niet heeft gezegend met de mogelijkheid om aangepaste objecten te maken die gepaard gaan met hun API's, zullen we hier buiten de gebaande paden moeten denken. Die goede oude web content artikelen Als je bekend bent met de web content articles van Liferay, dan weet je dat een web content article gebruik maakt van een 'Structure'. Een structuur is iets dat we zelf kunnen maken en waarvan we de velden kunnen definiëren. We kunnen bijvoorbeeld de volgende pizzastructuur maken: Met deze structuren kunnen we onze verschillende pizza's maken in de vorm van webinhoudsartikelen. Aangezien een webcontentartikel een ingebouwde functie van Liferay is, moet er wel een eindpunt zijn dat ze blootstelt, namelijk: /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents Standaard Maar, en je hebt het waarschijnlijk al geraden, dit geeft ons ook veel overbodige informatie. Dus moeten we de relevante velden toevoegen aan het verzoek: /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?fields=contentFields.name,contentFields.value.data Standaard Dat resulteert in de volgende respons: Met behulp van deze respons genereert de Angular-applicatie het vereiste menu: Is er geen manier om een aangepaste respons te maken? Zoals je misschien hebt gemerkt, hebben we in het bovenstaande voorbeeld nog steeds het nadeel dat we handmatig moeten parsen. Idealiter zouden we het antwoord ook kunnen definiëren. En dat kunnen we... zij het met een omweg. Webcontentartikelen gebruiken niet alleen structuren, maar ook sjablonen. En net als bij structuren kunnen we deze sjablonen ook definiëren. Onze lokale pizzeria heeft besloten om pasta's op het menu te zetten. Bovendien willen we ons deze keer niet meer bezighouden met het handmatig parsen. We willen gebruikmaken van de interfaces van Angular om dit automatisch te doen. Stel je de volgende interface voor in je Angular-applicatie: In Liferay kunnen we bijvoorbeeld een sjabloon 'Pasta' definiëren dat overeenkomt met deze interface: Nu hebben we alleen nog een eindpunt nodig dat ons sjabloon gebruikt en gelukkig voor ons bestaat dat: headless-delivery/v1.0/structured-contents/{structuredContentId}/rendered-content/{templateId} Standaard Dat resulteert in het volgende antwoord... ... die kan worden gebruikt om het menu in de Angular-toepassing in te vullen: Filteren, sorteren en zoeken Een andere geweldige ingebouwde functie is de mogelijkheid om een filter, sortering of zoekopdracht toe te voegen aan een verzoek. Dit betekent dat Liferay's headless API dit voor je regelt. Hier zijn enkele voorbeelden: Sorteren op titel /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?sort=title:desc Standaard Artikelen met 'Bolognese' zoeken /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?search='Bolognese' Standaard Filteren op titel /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?filter=title eq 'Pizza Palermitana' Standaard Als u de velden leeg laat , wordt alleen de pagineringsinformatie geretourneerd, inclusief het totale aantal objecten dat door het verzoek is gevonden. /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?fields= Standaard Je kunt hier meer informatie vinden over filteren, sorteren en zoeken. Disclaimer : Filteren, sorteren en zoeken kunnen niet worden gebruikt als je je eigen aangepaste sjabloon gebruikt. Hier is echter ook een workaround voor, zij het met het nadeel dat je 1 + n requests moet doen: Je kunt je items sorteren/filteren/zoeken door gebruik te maken van de standaard respons van Liferay, die een URL bevat die je naar je aangepaste respons leidt: /o/headless-delivery/v1.0/content-structures/{contentStructureId}/structured-contents?fields=renderedContents.renderedContentURL'. Standaard Hoe zit het met de contentstructureId en de templateId? Het is waar dat wanneer je een nieuwe structuur of sjabloon aanmaakt, de Id direct wordt gegenereerd. Maar voor elk klein probleem is er een oplossing. Voor dit probleem in het bijzonder zijn er 2 mogelijke benaderingen: uw structuur en sjabloon programmatisch maken, wat betekent dat u de ID van uw structuur en sjabloon kunt definiëren; of content sets gebruiken, wat een nieuwe ingebouwde functie is van Liferay 7.2. Aangezien we zo min mogelijk moeite willen doen, gaan we voor optie nummer 2: content sets. Zonder al te veel in detail te treden, zijn contentsets eigenlijk wat ze klinken: een verzameling content die door een beheerder kan worden gedefinieerd. Gelukkig voor ons kunnen we bijvoorbeeld een verzameling maken van alle webinhoudsartikelen op basis van een of meer structuren. Dit betekent dat we een contentset kunnen maken van al onze pizza's en pasta's, waarbij je ook kunt filteren en bestellen via het configuratiescherm. Je voelt misschien al aan waar ik hiermee naartoe wil. Ja, er is ook een eindpunt waarmee we de webinhoudsartikelen kunnen ophalen via de inhoudset: o/headless-delivery/v1.0/sites/{siteId}/content-sets/by-key/{key}/content-set-elementen Standaard De sleutel wordt gegenereerd op basis van de naam van de inhoudset, waarbij de spaties worden vervangen door een koppelteken. Gesorteerde pizza's en pasta's zou de sleutel 'gesorteerde-pizza's-en-pasta's' genereren. Meer informatie over het maken van een contentset vindt u hier . Liferay 7.2 headless API's: conclusie Zonder twijfel hebben Liferay 7.2 headless API's de potentie om aangepaste oplossingen te verrijken met de Liferay functies die we kennen en waar we van houden. Echter, met de introductie van deze headless API's had ik gehoopt dat we een ingebouwde functie zouden hebben om eenvoudig onze eigen aangepaste objecten te maken en de mogelijkheid om deze te ontsluiten via speciale API's. Dat gezegd hebbende, de mogelijkheid om deze functie enigszins te reproduceren door middel van web content artikelen en hun headless API's spreekt voor de flexibiliteit en uitbreidbaarheid van Liferay zelf. Ik kijk in ieder geval uit naar wat ze nog meer voor ons in petto hebben! Bekijk onze Liferay diensten

Lees verder