使用Ruby或Python与API交互

0 投票
2 回答
647 浏览
提问于 2025-04-17 03:58

我想开始制作网页应用程序。我需要基本的增删改查功能。

我对如何在Ruby和Python中做到这一点有一些基础了解,但我现在遇到了一些困难:

我该如何在Ruby或Python中解析GET或POST请求呢?

我想和别人的API进行交互,我知道我需要的字符串,但不知道在编码时该如何引用和使用这个字符串。

举个例子:我想引用一个用户的个人资料,并计算他们发布的帖子数量。

我知道这个网址大概是这样的:http://www.coolwebsite.com/users?bobsgreat?postcount

这个网址会返回一个值,表示他的帖子数量。

我该如何把这个数字放到我的Python脚本里,然后又该如何让Python把这个数字写入一个HTML文件以供查看呢?

抱歉,如果我问了很多问题,随着我开始写,问题也变得更多了。

2 个回答

0

如果你需要处理一个API并且使用Ruby语言,我强烈推荐你使用api_smith这个工具库。上次我用它的时候,大概花了两个小时就把整个API搞定了。下面这篇博客文章对这个工具有个很好的介绍:

使用API Smith构建结构化的API客户端

1

这是一个非常简单的例子,展示了你如何在 python 中做到这一点。这个例子可能需要根据你的具体情况进行调整,但希望它能帮助你入门:

import urllib
import urllib2
url = "http://www.coolwebsite.com"
post = urllib.urlencode({"users":"bob", "bobsgreat":"yes", "postcount":"14"})

request = urllib2.Request(url, post)
socket = urllib2.urlopen(request)

hdrs = socket.headers
source = socket.read()
socket.close()

print "---- Headers -----"
print hdrs
print "---- Source HTML -----"
print source
print "---- END -----"

value = 0
for line in source.splitlines():
    if not line.strip():  continue
    if line.startswith("value="):
        try:
            value = line.split("=")
        except IndexError:
            pass
    if value > 0:
        break

open("some.html", "w").write("value is: %d" % value)

撰写回答