2016-03-22 7 views
1

Nach den OneNote API documentation kann ich bestimmte Seiten in einem bestimmten Abschnitt GET verwenden:Die beste Methode, One Note API zu verwenden, um bestimmte Seiten in bestimmten Abschnitten eines bestimmten Notizbuchs abzurufen.

../sections/{section-id}/pages[?filter,...] 

... und ich kann einen bestimmten Abschnitt in einem bestimmten Notebook-GET mit:

../notebooks/{notebook-id}/sections[filter,...] 

.. . verwenden, aber wenn ich versuche, diese zu kombinieren, bestimmte Seiten in einem bestimmten Abschnitt in einem bestimmten Notebook zu bekommen,:

../notebooks/{notebook-id}/sections/{section-id}/pages[?filter,...] 

... ich:

"Badly Anfrage in oneNoteGet gebildet() für: Notebooks/< Notebook-id>/sections/< Schnitt-id>/pages ...?"

Natürlich, ich kann, indem man zuerst dieses Problem umgehen eine Liste aller Abschnitte in einem bestimmten Notizbuch abrufen, dann aus dieser Liste einen bestimmten Abschnitt auswählen und schließlich bestimmte Seiten in diesem Abschnitt anfordern.

Aber gibt es einen direkteren Weg? Oder ist das nur ein Mangel in der aktuellen API (in diesem Fall sollte ich eine UserVoice-Anfrage stellen)?

Antwort

3

Verwenden Sie einen OData-Filter auf der Seite Entitätssatz: (stellen Sie sicher, dass Sie diese erweitern)

GET ~/pages?$filter=parentNotebook/id%20eq%20'YOURNOTEBOOKID'&$expand=parentNotebook 
+1

Danke für super schnelle Antwort, Jorge. Werde das heute später versuchen und euch wissen lassen, wie ich gehe. – Velojet

+0

Ja, das funktioniert sehr gut, danke, Jorge - so viel sauberer als mein klobiger Workaround. (Nur ein wenig verwirrt über das '$' vor 'Filter' und 'erweitern' - in meinem PHP-Code werden diese zu Variablen.) – Velojet

+0

Nur als ein Follow-up zu meinem geklammerten Kommentar oben über die vorbereiteten '$' Probleme in PHP-Code verursachen: die offizielle OData-Dokumentation spezifiziert die vorangestellten sigil-vor-Abfrage-Parameter, aber die OneNote-API-Dokumentation lässt es weg - was es für PHP-Programmierer einfacher macht :) (Ich könnte das '$' ('\ $')) aber das scheint übertrieben zu sein, wenn es einfach weggelassen wird. – Velojet

2

Dank Jorge bedeutet dies auch durch die Filter zu ändern:

GET ~/pages?$filter=parentNotebook/name%20eq%20'YOURNOTEBOOKNAME'&$expand=parentNotebook

eine kann alle Seiten in einem Notizbuch nur anhand des Notizbuchnamens abrufen (was ich gesucht habe).