Alte Frage, ja ... Aber für den Fall, dass jemand dies googelt; Eine andere Option ist die Verwendung von Org Babel und ob-http
... (Kann von Melpa installiert werden .)
Mit " " org-babel
können Sie eine .org
Datei http
erstellen, die Codeblöcke enthält. Wenn diese Blöcke ausgewertet werden, stellen sie die HTTP-Anforderung und geben die Antwort als Ergebnis zurück.
Wenn diese Blöcke ein #+NAME:
Attribut " " haben, können Sie ihre Ergebnisse in jedem anderen org-babel
Block verwenden. Dies ermöglicht eine ziemlich gute Programmierung unter Verwendung der Ergebnisse von HTTP-Anforderungen.
Beispiel: Hier ist ein kleines Org-Dokument, in dem gezeigt wird, wie eine HTTP-Anfrage gestellt und der zurückgegebene JSON-Code in Ruby analysiert wird:
* The request
The following is the example request shown on [[https://github.com/zweifisch/ob-http][ob-http's Github page]]...
It isn't anything fancy, but it is a REST API request, and returns
JSON, so it works for the sake of this demonstration:
#+NAME:ob-languages
#+BEGIN_SRC http :pretty
GET https://api.github.com/repos/zweifisch/ob-http/languages
#+END_SRC
#+RESULTS:
: {
: "Emacs Lisp": 7034
: }
Notice how this has a "=#+NAME:=" attribute? This is a name we can use
in other =org-babel= blocks. (As you will see below)
* Using the request
Now that I have an =http= request in an org block with a name... Lets
write something in a completely different language and use our HTTP
request's response:
#+BEGIN_SRC ruby :var langs=ob-languages
require 'json'
JSON.parse(langs)['Emacs Lisp']
#+END_SRC
#+RESULTS:
: 7034
The =:var= keyword allowed me to assign the "=langs=" variable in the
Ruby block to the result of the =ob-languages= block [[The request][above]].
This didn't have to be in Ruby, this could have been any language,
including another =http= block.
So sieht das aus in org-mode
:
Wenn Sie C-c C-c
auf den unteren Block (The Ruby one) treffen, wird der obere automatisch auf seine Abhängigkeit hin bewertet (das ist das :var
Bit im Header des Blocks.). Dies bedeutet, dass zuerst die http
Anforderung erfolgt und dann die Ergebnisse zur weiteren Verarbeitung an Ruby übergeben werden.
Sie können dies mit so vielen Blöcken tun, wie Sie möchten und mit so vielen Sprachen.
Wenn dies Ihren Anforderungen entspricht, ob-http
müssen Sie nach der Installation einige manuelle Anpassungen vornehmen, damit es funktioniert. (Mach dir keine Sorgen, es ist nicht so viel)
Nach der Installation ob-http
müssen Sie zwei Variablen anpassen: org-src-lang-modes
und org-babel-load-languages
.
Wenn M-x customize-variable
Sie also ausführen, können Sie jedes so anpassen, dass es Folgendes enthält:
org-src-lang-modes
: Sie möchten diese Variable so anpassen, dass sie eine weitere Sprachzuordnung enthält, sodass Sie einen weiteren Wert am Ende der Liste einfügen können:
String: http
Symbol: ob-http
Dann können Sie C-x C-s
diese Anpassung speichern.
org-babel-load-languages
: Sie möchten der Liste der aktivierten org
Sprachen ein weiteres Element hinzufügen . " http
".
Sie müssen es möglicherweise manuell zur Liste hinzufügen, wenn die Option nicht in den möglichen Optionen enthalten ist. Klicken Sie dazu auf "Status" und wählen Sie " :
", um den Lisp-Ausdruck anzuzeigen. Dann fügen Sie einfach Folgendes hinzu vor der letzten schließenden Klammer:
(http . t)
Danach ein schnelles C-x C-s
und M-x org-reload
sollte alles sein, was Sie brauchen ..!