The document discusses various application programming interfaces (APIs) for interacting with eZ Platform's content repository, including the public PHP API, REST API, and a GraphQL prototype. It provides examples of using the public API and REST API to retrieve content, create sessions, and perform searches. It also outlines future plans to improve the REST API and develop a new REST v3 API based on the Symfony API Platform project.
APIs are must nowadays. We'll see how API Platform can help us bringing functional api platforms into production quickly. We will identify the key concepts of the framework, we will understand how to instruct it according to our needs and how it naturally integrates into the Symfony ecosystem.
In this session we will review all of the RESTful capabilities of ColdBox. We will then go into modeling mode and model a RESTful service using the ColdBox Relax Module and finally implement the running service. But there's more, we will then document the entire service for you.
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
This presentation provides a functional and technical overview of Lotus Forms Server - Webform Server 3.0. It includes several architecture diagrams as well as an overview of how Webform Server transforms XFDL and XForms forms into HTML and JavaScript forms for display in a browser.
This presentation includes:
* What’s new in 3.0
* About Webform Server
* Architecture Overview
* Scaling Webform Server
* Creating a Servlet
* Creating a Portlet
* Differences Between Webform Server and Viewer
* Form-based Settings
* Document Accessibility Wizard
Webform Server 351 Architecture and Overviewddrschiw
This presentation provides a functional and technical overview of Lotus Forms Server - Webform Server 3.5.1. It includes several architecture diagrams as well as an overview of how Webform Server transforms XFDL and XForms forms into HTML and JavaScript forms for display in a browser.
This presentation includes:
* What’s new in 3.0
* About Webform Server
* Architecture Overview
* Scaling Webform Server
* Creating a Servlet
* Creating a Portlet
* Differences Between Webform Server and Viewer
* Form-based Settings
* Document Accessibility Wizard
APIs are must nowadays. We'll see how API Platform can help us bringing functional api platforms into production quickly. We will identify the key concepts of the framework, we will understand how to instruct it according to our needs and how it naturally integrates into the Symfony ecosystem.
In this session we will review all of the RESTful capabilities of ColdBox. We will then go into modeling mode and model a RESTful service using the ColdBox Relax Module and finally implement the running service. But there's more, we will then document the entire service for you.
Lotus Forms Webform Server 3.0 Overview & Architectureddrschiw
This presentation provides a functional and technical overview of Lotus Forms Server - Webform Server 3.0. It includes several architecture diagrams as well as an overview of how Webform Server transforms XFDL and XForms forms into HTML and JavaScript forms for display in a browser.
This presentation includes:
* What’s new in 3.0
* About Webform Server
* Architecture Overview
* Scaling Webform Server
* Creating a Servlet
* Creating a Portlet
* Differences Between Webform Server and Viewer
* Form-based Settings
* Document Accessibility Wizard
Webform Server 351 Architecture and Overviewddrschiw
This presentation provides a functional and technical overview of Lotus Forms Server - Webform Server 3.5.1. It includes several architecture diagrams as well as an overview of how Webform Server transforms XFDL and XForms forms into HTML and JavaScript forms for display in a browser.
This presentation includes:
* What’s new in 3.0
* About Webform Server
* Architecture Overview
* Scaling Webform Server
* Creating a Servlet
* Creating a Portlet
* Differences Between Webform Server and Viewer
* Form-based Settings
* Document Accessibility Wizard
ASP.NET Web API is the de facto framework for building HTTP-based services in the .NET ecosystem. With its WCF and MVC lineage, Web API brings to the table better architecture, easier configuration, increased testability, and as always, it's customizable from top to bottom. But to properly use Web API it is not enough to get familiar with its architecture and API, you also need to really understand what HTTP is all about. HTTP is the most common application layer protocol in the world, and yet, not many web developers are familiar with HTTP concepts such as of chunking, caching, and persisted connections. In this full-day tutorial, we will focus on designing and implementing HTTP-based services with ASP.NET Web API, and you will learn how to better use it to implement the features provided by HTTP.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Browser Serving Your We Application Security - ZendCon 2017Philippe Gamache
One important concept in web application security is defense in depth. You protect your server, your network, your database, and your application, but what about the user browser? Can it be done?
Yes! Several new technologies and protocols to assist security has been added to the browsers. Several should be added, activated, and configured from your web server or webpage. In this session we'll explore these technologies and learn how to use them. You’ll learn about the Robots meta tags (for crawlers indexing), browsing compatibility, XSS and clickjacking protection, SSL/TLS Control, and content security policy.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginOved Ourfali
In this presentation I show how one can use the new oVirt-Engine UI-Plugin infrastructure,
to add a new oVirt UI plugins, and show an example of a Foreman-UI-plugin, that allows querying Foreman information on oVirt entities.
Web app architecture
Device app architecture?
What is Rest API?
How mobile applications interact with web?
List of storage in web/device
What and How is Heroku.com?
Configuration of Heroku on Ubuntu.
Create a web app with rest api and deploy it to Heroku
Create a device app and use of rest api provided by web
ASP.NET Web API is the de facto framework for building HTTP-based services in the .NET ecosystem. With its WCF and MVC lineage, Web API brings to the table better architecture, easier configuration, increased testability, and as always, it's customizable from top to bottom. But to properly use Web API it is not enough to get familiar with its architecture and API, you also need to really understand what HTTP is all about. HTTP is the most common application layer protocol in the world, and yet, not many web developers are familiar with HTTP concepts such as of chunking, caching, and persisted connections. In this full-day tutorial, we will focus on designing and implementing HTTP-based services with ASP.NET Web API, and you will learn how to better use it to implement the features provided by HTTP.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
Browser Serving Your We Application Security - ZendCon 2017Philippe Gamache
One important concept in web application security is defense in depth. You protect your server, your network, your database, and your application, but what about the user browser? Can it be done?
Yes! Several new technologies and protocols to assist security has been added to the browsers. Several should be added, activated, and configured from your web server or webpage. In this session we'll explore these technologies and learn how to use them. You’ll learn about the Robots meta tags (for crawlers indexing), browsing compatibility, XSS and clickjacking protection, SSL/TLS Control, and content security policy.
Composer has triggered a renaissance in the PHP community, it has changed the way we deal with other people’s code and it has changed the way we share our code. We are all slowly moving to using Composer, from Wordpress to Joomla and Drupal and frameworks in between. But many of us mistreat composer, follow outdated practices or simply lack a few tricks. In this session i’ll get you the low down on how to use composer the right way.
oVirt UI Plugin Infrastructure and the oVirt-Foreman pluginOved Ourfali
In this presentation I show how one can use the new oVirt-Engine UI-Plugin infrastructure,
to add a new oVirt UI plugins, and show an example of a Foreman-UI-plugin, that allows querying Foreman information on oVirt entities.
Web app architecture
Device app architecture?
What is Rest API?
How mobile applications interact with web?
List of storage in web/device
What and How is Heroku.com?
Configuration of Heroku on Ubuntu.
Create a web app with rest api and deploy it to Heroku
Create a device app and use of rest api provided by web
An Introduction to Websphere sMash for PHP Programmersjphl
IBM® WebSphere® sMash is an agile Web application platform for developing and running modern Web applications. It introduces a simple environment for creating, assembling and running applications based on popular Web technologies.
This presentation was delivered at the Dutch PHP Conference 2009. It shows how the PHP support in sMash can be used to easily integrate with Java assets.
For more information, see http://projectzero.org
Cloud Native Night, April 2018, Mainz: Workshop led by Jörg Schad (@joerg_schad, Technical Community Lead / Developer at Mesosphere)
Join our Meetup: https://www.meetup.com/de-DE/Cloud-Native-Night/
PLEASE NOTE:
During this workshop, Jörg showed many demos and the audience could participate on their laptops. Unfortunately, we can't provide these demos. Nevertheless, Jörg's slides give a deep dive into the topic.
DETAILS ABOUT THE WORKSHOP:
Kubernetes has been one of the topics in 2017 and will probably remain so in 2018. In this hands-on technical workshop you will learn how best to deploy, operate and scale Kubernetes clusters from one to hundreds of nodes using DC/OS. You will learn how to integrate and run Kubernetes alongside traditional applications and fast data services of your choice (e.g. Apache Cassandra, Apache Kafka, Apache Spark, TensorFlow and more) on any infrastructure.
This workshop best suits operators focussed on keeping their apps and services up and running in production and developers focussed on quickly delivering internal and customer facing apps into production.
You will learn how to:
- Introduction to Kubernetes and DC/OS (including the differences between both)
- Deploy Kubernetes on DC/OS in a secure, highly available, and fault-tolerant manner
- Solve operational challenges of running a large/multiple Kubernetes cluster
- One-click deploy big data stateful and stateless services alongside a Kubernetes cluster
RESTful API, nevidljiva spona koja spaja web-facing mobilne aplikacije sa online bazama podataka, server-side ishodište koje pokreće Javascript MVVM-based projekte često je nedovoljno istraženo područje čak i za iskusne programere. Ako vas zanima POST - PUT rat ili stvari poput idempotentnih nesigurnih metoda odgovore ćete pronaći u ovom predavanju.
Predavanje je održano 27. aprila 2014. godine u Beogradu na Google Code Day http://gcd.phpsrbija.rs/
Running Microservices and Docker on AWS Elastic Beanstalk - August 2016 Month...Amazon Web Services
In this session, we introduce you to a solution for easily running a Docker-powered microservices architecture on AWS using Elastic Beanstalk. We will also cover the fundamentals of Elastic Beanstalk and how it benefits developers looking for a quick and scalable way to get their applications running on AWS with no infrastructure work required.
Building a microservices architecture using Docker can require a lot of work, from launching and operating the underlying infrastructure to installing and maintaining cluster management software. With AWS Elastic Beanstalk’s multicontainer support feature, many of these tasks are simplified and abstracted away so you can focus on your application code. AWS Elastic Beanstalk is an easy-to-use service for deploying and scaling web applications and services developed with Java, .NET, PHP, Node.js, Python, Ruby, Go, and Docker."
Learning Objectives:
• Learn the basics of AWS Elastic Beanstalk
• Understand how to use Elastic Beanstalk to run containerized applications
• Learn how to use Elastic Beanstalk to start architecting microservices-based applications
20140527 - APIcon SF - Workshop #2 - Document and manage Java-based web APIsJerome Louvel
1) Overview of Restlet Platform (10’)
2) Documenting and managing your Java-based web API (20’)
3) Hands-on lab (20’)
- Sign in to APISpark
- Craft a custom web API
- Generate « API Commons » manifest
- Display Swagger UI for your web API
"How Crédit Agricole and IT-CE managed their digital transformation thanks to...eZ Systems
"How Crédit Agricole and IT-CE (Caisse d'Épargne) managed their digital transformation thanks to an unified platform." by Monika Kasiarz, Sales Engineer at eZ Systems France. eZ Roadshow 2019, Warsaw.
The rise of Digital Experience PlatformseZ Systems
Looking into the growing need for unified platform to build personalized Digital Experiences from Content to Commerce, from engagement to purchase and beyond. Keynote by Roland Benedetti CPO eZ Systems, eZ Roadshow 2019 in Warsaw.
Keynote eZ Roadshow & Diginight 2019 - osloeZ Systems
The rise of Digital Experience Platforms "Looking into the growing need for unified platforms to build personalized Digital Experiences from Content to Commerce, from engagement to purchase and beyond" by Roland Benedetti, Chief Marketing Officer at eZ Systems
What you'll learn:
- Live demo of eZ Platform v2.4 and its new features
- New features such as rich text block, form builder block, configuring workflows, and more
Andreas Hucks
SensioLabs Deutschland
CTO
Symfony has a wide user base today. Most who work with Symfony on a daily basis have configured their own services, are fluent in configuring routing and validators. But what is actually going on under the hood? What happens when the configuration is parsed? What is a cache warmup? What happens to a request before hitting your controller? How does the HttpKernel work? Andreas will help us gain insight into the inner workings of the Symfony framework. If you have used
Symfony, but have never built a compiler pass, a cache warmer, or are wondering how exactly the container is built, this talk is for you.
We will hear eZ's CEO Morten Ingebrigtsen, along with eZ's Chief Product Officer Roland Benedetti, and eZ's Chief Commercial Officer Bertrand Maugain, share updates on where eZ stands today and where it's headed tomorrow. We will also hear about the eZ's strategy and vision, as well as the product roadmap for the rest of 2018 and beyond.
Presented by: Roland Benedetti, Chief Product Officer @ eZ Systems
Personalization does not always have to be complex. Learn about the small steps marketers and editors can take to implement personalization features that deliver a lot of value. You will learn about relevance and interest, tags and taxonomy to categorize and segment, and explicit personalization.
Choose the eZ Universe for Your Web GalaxyeZ Systems
Presented by: Anne Thiebold
Project Manager at Novactive
Discover why Novactive's clients have decided to move to eZ Platform and to propulse all their websites on eZ Platform Cloud.
Extending eZ Platform v2 with Symfony and ReacteZ Systems
Presented by eZ’s Piotr Nalepa and Maciej Kobus
eZ Platform v2 is out and the UI has been fully redeveloped using Symfony as well as libraries such as React. You'll learn to quickly and simply extend eZ Platform's UI to fit your needs and add your own features to the platform. This session will go through the major extension points in the application and how to integrate your code—be it Twig-based classic web pages or with more modern and more interactive React.js code.
We’ll also explain what had changed in the technology stack of eZ Platform 2.x and why.
A Roadmap to Becoming Your Customer’s Information HubeZ Systems
Dominik Grau
Chief Innovation Officer @ Ebner Verlag
Learn how companies—even the most traditional ones—can transform themselves into digitally driven organizations that focus on customer experience.
eZ Platform Cloud and eZ Launchpad: Don’t Host, Don’t Deploy, Don’t Install—J...eZ Systems
by: Sébastien Morel
Novactive
CTO/Head of U.S.
Learn what’s involved in the process of launching a new web project—from starting with nothing to having a local development environment shared with your team using eZ Platform, Docker plus Platform.sh and more in just a few hours.
Nadia Kosak Astrid
Siteimprove
Partner Manager
The deadline for GDPR compliance is May 25, 2018. Are you an eZ Platform editor? Are you ready for GDPR? Learn how to use the Siteimprove plugin for eZ Platform to support your GDPR compliance process.
When content transforms your customer experienceeZ Systems
Yann Gourvennec
Visionary Marketing
CEO and Founder
Customer experience, not to mention customer centricity, is buzzword de rigueur. But what does it mean? Why is it important? Does your business depend on it? And how can content marketing support and improve it? In this interactive presentation, we will find out how content can spruce up your customer experience thanks to the lessons learned from a small retailer with a bump on the head who lived in the mid-19th century.
The eZ Connectors marketplace is growing! Hear from those who contributed to the latest batch of connectors and discuss the road ahead for eZ connectors.
# Internet Security: Safeguarding Your Digital World
In the contemporary digital age, the internet is a cornerstone of our daily lives. It connects us to vast amounts of information, provides platforms for communication, enables commerce, and offers endless entertainment. However, with these conveniences come significant security challenges. Internet security is essential to protect our digital identities, sensitive data, and overall online experience. This comprehensive guide explores the multifaceted world of internet security, providing insights into its importance, common threats, and effective strategies to safeguard your digital world.
## Understanding Internet Security
Internet security encompasses the measures and protocols used to protect information, devices, and networks from unauthorized access, attacks, and damage. It involves a wide range of practices designed to safeguard data confidentiality, integrity, and availability. Effective internet security is crucial for individuals, businesses, and governments alike, as cyber threats continue to evolve in complexity and scale.
### Key Components of Internet Security
1. **Confidentiality**: Ensuring that information is accessible only to those authorized to access it.
2. **Integrity**: Protecting information from being altered or tampered with by unauthorized parties.
3. **Availability**: Ensuring that authorized users have reliable access to information and resources when needed.
## Common Internet Security Threats
Cyber threats are numerous and constantly evolving. Understanding these threats is the first step in protecting against them. Some of the most common internet security threats include:
### Malware
Malware, or malicious software, is designed to harm, exploit, or otherwise compromise a device, network, or service. Common types of malware include:
- **Viruses**: Programs that attach themselves to legitimate software and replicate, spreading to other programs and files.
- **Worms**: Standalone malware that replicates itself to spread to other computers.
- **Trojan Horses**: Malicious software disguised as legitimate software.
- **Ransomware**: Malware that encrypts a user's files and demands a ransom for the decryption key.
- **Spyware**: Software that secretly monitors and collects user information.
### Phishing
Phishing is a social engineering attack that aims to steal sensitive information such as usernames, passwords, and credit card details. Attackers often masquerade as trusted entities in email or other communication channels, tricking victims into providing their information.
### Man-in-the-Middle (MitM) Attacks
MitM attacks occur when an attacker intercepts and potentially alters communication between two parties without their knowledge. This can lead to the unauthorized acquisition of sensitive information.
### Denial-of-Service (DoS) and Distributed Denial-of-Service (DDoS) Attacks
Bridging the Digital Gap Brad Spiegel Macon, GA Initiative.pptxBrad Spiegel Macon GA
Brad Spiegel Macon GA’s journey exemplifies the profound impact that one individual can have on their community. Through his unwavering dedication to digital inclusion, he’s not only bridging the gap in Macon but also setting an example for others to follow.
APNIC Foundation, presented by Ellisha Heppner at the PNG DNS Forum 2024APNIC
Ellisha Heppner, Grant Management Lead, presented an update on APNIC Foundation to the PNG DNS Forum held from 6 to 10 May, 2024 in Port Moresby, Papua New Guinea.
1.Wireless Communication System_Wireless communication is a broad term that i...JeyaPerumal1
Wireless communication involves the transmission of information over a distance without the help of wires, cables or any other forms of electrical conductors.
Wireless communication is a broad term that incorporates all procedures and forms of connecting and communicating between two or more devices using a wireless signal through wireless communication technologies and devices.
Features of Wireless Communication
The evolution of wireless technology has brought many advancements with its effective features.
The transmitted distance can be anywhere between a few meters (for example, a television's remote control) and thousands of kilometers (for example, radio communication).
Wireless communication can be used for cellular telephony, wireless access to the internet, wireless home networking, and so on.
This 7-second Brain Wave Ritual Attracts Money To You.!nirahealhty
Discover the power of a simple 7-second brain wave ritual that can attract wealth and abundance into your life. By tapping into specific brain frequencies, this technique helps you manifest financial success effortlessly. Ready to transform your financial future? Try this powerful ritual and start attracting money today!
1. Using eZ Platform in an API eraUsing eZ Platform in an API era
The time for monolithic applications is far gone. Now developers are
building solutions by assembling applications and services of all kinds and in
all ways.
We'll show you how eZ Platform embraces the modern way of building
applications by interacting with its Content Repository using
Public (PHP) API, REST API and GraphQL.
rtrand Dunogier
ps://github.com/bdunogier
ps://twitter.com/bdunogier
Andrew Lo
https://github.com/alo
https://twitter.com/andrew_
2. Public APIPublic API
How and why use it, BCHow and why use it, BC
promise explainedpromise explained
3. What is an API?What is an API?
API - Application Programming Interface - is a set of
well defined and maintained methods for building
application software.
eZ Platform Public API:eZ Platform Public API:
is a PHP API, grouped into Services with methods,
allowing Content Repository manipulation,
is provided by ezpublish-kernel package via
the interfaces in eZPublishAPI PHP
namespace.
4. What belongs to eZ Platform APIWhat belongs to eZ Platform API
Repository Services defined by interfaces in the
eZPublishAPIRepository namespace.
Value Objects defined in the
eZPublishAPIRepositoryValues
namespace.
Other interfaces defined in the
eZPublishAPIRepository namespace.
5. What does NOT belong toWhat does NOT belong to
eZ Platform APIeZ Platform API
Twig templates.
Database schema (though there is still a separate
BC promise for that).
Anything located in eZPublishCore
namespace.
6. Available Repository Services:Available Repository Services:
- Content Service.
- Location Service.
- Content Service.
- Permission Resolver.
- Field Type Service.
- Language Service.
- Object State Service.
- Role Service.
- Search Service.
- Section Service.
- Trash Service.
- URL Service
- URL Alias Service.
- User Service.
- Bookmark Service.
7. Accessing Public API ServicesAccessing Public API Services
Getting Content Service:
in a Symfony Container-aware class:
in a Controller extending
eZBundleEzPublishCoreBundleControlle
(not recommended):
/** @var SymfonyComponentDependencyInjectionContainerInterface
$repository = $container->get('ezpublish.api.repository');
/** @var eZPublishAPIRepositoryContentService $contentService
$contentService = $repository->getContentService();
/** @var eZPublishAPIRepositoryContentService $contentService
$contentService = $this->getRepository()->getContentService();
8. Getting Content Service:
via Repository injected into Symfony service:
by injecting specific Repository service definition:
AppMyService:
- '@ezpublish.api.repository'
AppMyService:
- '@ezpublish.api.service.content'
9. Why use an API?Why use an API?
Any changes to application state (mostly database
operations changing state of Content) are
maintained and supported.
It ensures all necessary layers (e.g. cache) are
properly handled by the Content Framework.
Has a Backward Compatiblity promise on usage
(for a Consumer).
10. Semantic VersioningSemantic Versioning
eZ Platform packages, including
ezpublish-kernel follow the SemVer version
numbering convention:
X.Y.Z (e.g. 2.1.1)
where:
X is major version (release).
Y is minor version.
Z is patch version.
For more information see .https://semver.org/
11. BC promise (X.Y.Z)BC promise (X.Y.Z)
Backward Compatibility promise is related mostly to
changes between minor (Y) versions.
Any minor release Y will not break existing code
written for major version X.
12. eZ Platform APIeZ Platform API
We ensure that any usage of API from the Consumer
point of view will work across any minor (Y) release.
composer.json:
{
"require": {
"ezsystems/ezpublish-kernel": "^7.1"
}
}
13. Examples of BC guaranteedExamples of BC guaranteed
usages:usages:
Backward Compatibility is guaranteed for:
class MyService
{
/** @var eZPublishAPIRepositoryContentService */
private $contentService;
public function doSomething()
{
// ...
$this->contentService->publishVersion($versionInfo);
// ...
}
}
14. Sometimes there is no other way than to use code
for which there is no BC guarantee.
What to do?
Unit-Test it!
15. Unit testing custom unsupported implementationsUnit testing custom unsupported implementations
composer.json:
{
"require": {
"ezsystems/ezpublish-kernel": "^7.1@dev"
}
}
use PHPUnitFrameworkTestCase;
use eZPublishCoreSomething;
class ClassUsingSomethingTest extends TestCase
{
public function testSomething()
{
$class = new MyClassUsingSomething();
// ...
$class->doSomething();
// ...
}
}
17. REST APIREST API
Remote API implemented over HTTP protocol.
Reflects Public (PHP) API
Allows manipulating eZ Platform: Content, Content
Types, Locations, Content Relations, Object States,
URL aliases, Users and their permissions (Roles
and policies).
Exposes Search Service (via /views endpoint).
Uses Repository permissions (by default every
request is done as Anonymous user).
Is NOT SiteAccess-aware.
18. DocumentationDocumentation
Currently available at:
Will be moved to the Developer Documentation
( )
https://github.com/ezsystems/ezpublish-
kernel/blob/v7.1.1/doc/specifications/rest/REST-
API-V2.rst
http://doc.ezplatform.com
19. REST API:REST API:
is available for every eZ Platform installation at the
prefix /api/ezp/v2,
supports HTTP methods (verbs):
GET,
POST,
COPY,
PATCH,
DELETE,
PUBLISH,
OPTIONS.
20. allows to use X-Http-Method-override header
if a web server doesn't allow all mentioned
methods,
supports uniformly XML and JSON request
payloads and responses.
Expects in most cases HTTP headers:
Cookie,
X-CSRF-Token (for requests modifying state of
the system),
Accepts (with expected by a client media type
and format) - to control output,
Content-Type (with provided by a client media
type and format) - to control input.
28. Search Service exampleSearch Service example
search Service expects Criterions, which makes
request complicated,
hence, it requires POST and that implies it requires
X-CSRF-Token header also.
31. Platform REST APIPlatform REST API
Present, time anomaliesPresent, time anomalies
and futureand future
32. Past & presentPast & present
REST API has not been our focus since 1.0.
Stabilizing
Catching up on missing features
v2 won't receive significant improvements
34. GraphQL primerGraphQL primer
Query language created by Facebook
Strongly typed
Allows you to get exactly what you query
Reduces number of queries, a defect of the v2
REST API
40. More ?More ?
Surprisingly easy to implement
Great usability
List all content types, with field definitions and
types
Types can be inspected when browsing
Browsing content is really convenient
41.
42. Flexible FieldTypeFlexible FieldType
GraphQL Interfaces ... on InterfaceName {
InterfaceSpecificField }
Interface per fieldtype
Variations of an image
Converted richtext
Direct access to relations
Geo coordinates from location
43.
44. Fitting YOUR content modelFitting YOUR content model
We could go even further:
{
contentModel {
article {
name { text }
intro { html5 }
}
place {
name { text }
location { address latitude longitude }
}
}
}
46. LimitationsLimitations
Limited to reading, no writing (mutations)
Not adapted to managing content
Can apply to lightweight application use-cases
comments
ratings
Not optimised
49. Centered around entities and operations on those
Our entities are value objects
Uses Symfony Serialization
50. Very well maintained
Modern formats, HATOAS
GraphQL (using webonyx)
Schema.org
Dynamically self-documented (Swagger/OpenAPI)
Built to be re-used by your own code