Besonderes elektronisches Anwaltspostfach: Atos hält die eigene Lösung für sicher

heise online Newsticker - 29. Januar 2018 - 13:00
Atos teilt mit, die Sicherheit und Integrität des beA sei wiederhergestellt und das System in der aktuell vorliegenden Ausbaustufe voll einsatzfähig. Die Entscheidung läge nun bei der Bundesrechtsanwaltskammer.

Spectre-Lücken: auch MIPS P5600 und IBM POWER6 betroffen, Intel erklärt IBC

heise online Newsticker - 29. Januar 2018 - 12:30
Intel erläutert nun die Spectre-Schutzfunktionen der Indirect Branch Control; MIPS meldet die CPU-Kerne P5600 und P6600 als betroffen, Spectre-Code funktioniert auch auf der In-Order-CPU POWER6.

Dolby Vision: Audio-Video-Receiver von Denon und Marantz sollen Signale auch an Sony-TVs weiterleiten

heise online Newsticker - 29. Januar 2018 - 12:30
Sound United hat sich zur aktuellen Firmware-Diskussion um Sonys Dolby-Vision-taugliche UHD-Fernseher geäußert. Der Receiver-Hersteller geht davon aus, dass die von Sony gewählte Übertragungsvariante keine Probleme bei seinen Geräten verursachen wird.

Überblick: Die Rückruf-, Austausch- und Reparaturprogramme von Apple

heise online Newsticker - 29. Januar 2018 - 12:30
Kunden mit defekter Apple-Hardware müssen nach Ende der Garantie nicht immer Reparaturkosten zahlen: Diverse Austausch- und Reparaturprogramme decken Probleme über einen längeren Zeitraum ab. Mac & i hat die wichtigsten Angebote gesammelt.

Fitnesstracker: Strava-Aktivitätenkarte legt Militärbasen in aller Welt offen

heise online Newsticker - 29. Januar 2018 - 12:00
Nicht nur Zivilisten, sondern auch Soldaten tracken offenbar fleißig ihre Bewegungen. Eine von Strava erstellte Weltkarte aller Aktivitäten legt deshalb teilweise geheime Militärbasen offen und zeigt beispielsweise regelmäßige Jogging-Routen.

Jetzt patchen! Angriffe auf Viren-Scanner ClamAV

heise online Newsticker - 29. Januar 2018 - 12:00
Derzeit gibt es Attacken gegen ClamAV. Nutzer sollten zügig die jüngst erschienene abgesicherte Version installieren.

Firefox für Fire TV mit Turbo und Tracking-Schutz

heise online Newsticker - 29. Januar 2018 - 12:00
Mit Firefox können Fire-TV-Nutzer weiterhin YouTube-Videos gucken – auch wenn Google und Amazon sich streiten. Nun erhielt der Browser einen "Turbo-Modus" der auch vor neugierigen Trackern schützt.

Amazee Labs: GraphQL for Drupalers - part 4 - fetching the entities

Planet Drupal - 29. Januar 2018 - 11:47
GraphQL for Drupalers - part 4 - fetching the entities

GraphQL is becoming more and more popular every day. Now that we have a beta release of the GraphQL module (mainly sponsored and developed by Amazee Labs) it's easy to turn Drupal into a first-class GraphQL server. In this series, we'll try to provide an overview of its features and see how they translate to Drupal.

Blazej Owczarczyk Mon, 01/29/2018 - 10:47

In the last post we talked about the basic building blocks of every GraphQL query - the fields. We've discussed their types and traits as well as described the rules according to which Drupal fields turn into GraphQL fields. This week we were going to expand the topic further and cover field creation, but Daniel Noyola asked an interesting question in the comment below one of the recent articles:

How can I filter the results in a nodeQuery? Like I would in a normal View or with the "where" clause in a SQL Statement. I noticed that it receives a NodeQueryFilterInput but I don't see how to use it.

Fetching entities based on a filter or a set of filters is a common use case, so let's focus on that first.

TL;DR

There are two ways to query the entity repository. First one would be through the entityQuery fields which are shipped with the core module but are limited in functionality. They only allow us to filter by base fields and there's no way to use an operator other than equals to. The other approach is much more powerful, as it's based on Views. It requires an additional module - graphql_views - to be installed though. Let's start with the built-in way.

The nodeQuery

Each entity type in the system gets its own query field. Let's see in the explorer how it looks like for nodes:

So it's a field (blue) with 3 arguments: offset, limit and filter (purple) which returns a value of type EntityQueryResult (all types are in yellow).

The first two arguments, offset and limit, are for paging and they work the same way as in SQL. Both are integers and both have default values of 0 and 10 respectively (green). Arguments that have default values can be omitted. We'll use this feature in a while.

The last argument - filter - is of a complex type NodeQueryFilterInput. Let's click it:

So it comprises all the base fields of the entity type that is being queried. It's not enough to issue arbitrary queries but it will suffice for a simple use case. This is how we could fetch a list of articles created by a given user:

We haven't specified the offset nor the limit, so they'll get their default values. It means that the output will contain at most 10 results, starting from the result number 0.

That's cool, but what if we wanted to order the articles by node id (nid) to only show the latest articles? Or filter by tags? Or fetch the title text of an image that is attached to a media entity that is connected with the first event that starts after the article's release date?

Use The Views

The answer is: we can do it like we'd normally do it in Drupal - with a view. Views integration has been moved to a separate project, so it has to be downloaded with composer (composer require drupal/graphql_views), from drupal.org or from github.

With graphql_views enabled we can add a GraphQL display to any view in the system.

Now we can sort the results, filter based on content fields and add relationships. We also have the option to return either the full entities, just a selection of fields, or even search results taken straight from a search server.

Contextual filters set in the view will automatically turn into the arguments of the GraphQL field. Let's see an example:

This field represents a simple view showing nodes. It has one contextual filter - Content: Authored by - so the corresponding input type consists of just one field:

and its row type is set to Entity (as pictured on the screenshot above), so the result will be of type NodeArticle:

We can use the filed like this:

Views integration is a pretty broad topic, so in the next post we might try to cover it in more detail. There are quite a few more interesting aspects like sorting, exposed filters, and attaching views to entities, so we'll focus on that in an attempt to fully answer Daniel's question. For those interested in the back-end side of things I'd recommend the great Extending GraphQL series by Philipp Melab. The first post that explains how to create fields is here: Extending GraphQL: Part 1 - Fields.

P.S. GraphQL Views is not stable yet. In fact, two issues were spotted and fixed in the process of writing this article. If you spot a bug please report it on github  or let us know in the #graphql channel at Drupal slack.

Other posts in the series

Promet Source: How to Setup and Run Automated Accessibility Testing using Windows 10 OS

Planet Drupal - 29. Januar 2018 - 11:36
Tools Needed: Step 1: Install Python then setup in Environment Variables

Gigantische Steuernachzahlung: Apple kann sich viel Zeit lassen

heise online Newsticker - 29. Januar 2018 - 11:30
Für die Einführung seines Geldberges aus dem Ausland soll der iPhone-Konzern 38 Milliarden US-Dollar an die amerikanischen Finanzbehörden zahlen. Dafür hat er allerdings acht Jahre Zeit – und Zinsen fallen auch nicht an.

#TGIQF - das Quiz: Kultige Filmzitate

heise online Newsticker - 29. Januar 2018 - 11:30
Kein Kultfilm ohne unvergessliche Sprüche. Doch können Sie die Zitate auch den richtigen Filmen oder Protagonisten zuordnen?

Im Erzgebirge soll das Zugfahren der Zukunft erkundet werden

heise online Newsticker - 29. Januar 2018 - 11:30
Das automatisierte Fahren ist nicht nur auf der Straße ein Thema. Auch auf der Schiene soll es in Zukunft ohne menschliche Hilfe vorwärtsgehen. Die Forschungsarbeit dazu soll im Erzgebirge geleistet werden.

Horrorspiele: Amnesia-Paket kostenlos im Humble Store

heise online Newsticker - 29. Januar 2018 - 11:00
Im Humble Store kann man die beiden Horrorspiele Amnesia: The Dark Descent und Amnesia: A Machine for Pigs aktuell kostenlos herunterladen. Auf Steam kosten beide Spiele zusammen noch 40 Euro.

Sicherheitsupdate: Mehrere Speicherfehler machen Thunderbird angreifbar

heise online Newsticker - 29. Januar 2018 - 11:00
Mit Version 52.6 des E-Mail-Clients Thunderbird schließen die Entwickler mehrere Sicherheitslücken. Die Bedrohung gilt als kritisch.

Autonom einparkende Schlappen sollen Nissans Technik demonstrieren

heise online Newsticker - 29. Januar 2018 - 11:00
Für ein "Tischlein deck dich" reicht die Technik noch nicht, die Nissan nun in einem japanischen Gasthaus anhand von Hausschuhen und Sitzkissen demonstriert.

Datenschutz-Grundverordung für Admins

heise online Newsticker - 29. Januar 2018 - 10:30
Wenn ab Mai die Regeln der neuen DSGVO gelten, betrifft das jedes Unternehmen. Ein Webinar erläutert Admins, Datenschutz- und Security-Verantwortlichen, was zu tun ist – wegen der hohen Nachfrage an eine Zusatztermin.

Apple will es bei den E-Books noch einmal wissen

heise online Newsticker - 29. Januar 2018 - 10:00
Der Konzern liegt Analysten zufolge mit iBooks deutlich hinter Amazons Kindle zurück. Nun soll eine verbesserte App samt überarbeitetem Angebot helfen.

Datenschutz für den Datenschatz: Mobilfunkanbieter wollen sich Datenschutzregeln geben

heise online Newsticker - 29. Januar 2018 - 10:00
Die GSMA will sich eigene Datenschutz-Richtlinien geben – auch um damit drohender Regulierung entgegenzutreten. Auf dem Weltwirtschaftsforum schilderte ein Versicherungs-Chef außerdem die Vorzüge von Big Data.

Apple intensiviert Forschung an autonomen Autos

heise online Newsticker - 29. Januar 2018 - 9:30
Apple soll nun fast 30 SUVs mit LIDAR-Sensoren und weiterer Self-Driving-Technik auf der Straße haben. Das haben die kalifornischen Behörden bestätigt.

Android Wear SDK 2.2 individualisiert Benachrichtigungen

heise online Newsticker - 29. Januar 2018 - 9:00
Entwickler können mit dem frisch erschienen SDK das Ziffernblatt vor allem hinsichtlich der Benachrichtigungen individueller gestalten. Außerdem hat Google die Klasse zum Anzeigen erweiterter Informationen um einige Funktionen ergänzt.