我正处于编写Emacs major mode的早期阶段,用于浏览和贡献Stack Exchange网络上的站点,与dired
和list-packages
的工作方式大致相同,其中有一些灵感来自magit
和org-mode
。
问题是,当然,我不知道如何将Emacs与SE API(v2.1)连接在一起。我从来没有在Elisp中做过任何涉及网络连接的事情,尽管我对语言本身很满意(并且对package.el
进行了多次研究)。
我从来没有使用过JSON,尽管我正在研究W3C's tutorial。
一个简单的“hello world”就足够了,可能沿着
(execute-json-query "/info")
W3C教程似乎也没有讨论请求。我得自己去调查一下。
我真的不知道我在做什么我昨天下午才开始狂热地工作。
3条答案
按热度按时间ygya80vv1#
其他答案的问题是Emacs附带的Stack Exchange API is GZIP'd和url.el不会自动删除它。
看看我的request.el库,它支持自动解压缩(老实说,我只是添加了支持)。下面是一个在stackoverflow中获取最活跃问题的示例:
request.el是well documented,附带可执行示例,并且是well tested。
hk8txs482#
看看REST Client on GitHub-一个手动探索和测试HTTP REST Web服务的工具。
ctehm74n3#
这可能不是最好的方法,但它似乎对我有用。
然后用url调用这个函数将返回响应的内容,在本例中是json。我使用reddit API作为示例,因为我不确定Stack Exchange API是如何工作的。
这里几乎没有包含错误检查,如果url没有返回数据,那么这将爆炸。