Dom*_*mra 5 java rest web-services scala
我的大学任务有一个非常特殊的要求.其关键在于我们需要构建一个使用2种不同语言的Web应用程序.奇怪的要求我知道.
我立刻想到让Scala和Play Framework以JSON方式提供数据,然后拥有某种Python客户端,将REST服务呈现为HTML.
问题是我对此很新.我之前从未做过REST的事情,甚至术语也令人生畏.然而,我设法让几个模型启动并运行Play,为Json提供服务.现在我需要渲染它.
你会建议什么来满足这个要求?还有其他想法吗?理想情况下,我仍然希望使用Scala和Play,但除了这个限制之外,我不关心还有什么.
编辑:我知道这是一个奇怪的要求.为什么我不会只使用Play来呈现HTML ...?唉,我不能.
我创建了一个非常简单的项目,展示了如何执行此操作:https:
//github.com/jamesward/playscalapython
没有多少.这是Play!/ Scala app:
package controllers
import play._
import play.mvc._
object Application extends Controller {
def index = {
val widget1: Widget = Widget(1, "The first Widget")
val widget2: Widget = Widget(2, "A really special Widget")
val widget3: Widget = Widget(3, "Just another Widget")
val widgets: Vector[Widget] = Vector(widget1, widget2, widget3)
Json(widgets.toArray)
}
}
case class Widget(val id: Int, val name: String)
Run Code Online (Sandbox Code Playgroud)
以下是使用Play中的JSON的Python应用程序!应用:
import os
import simplejson
import requests
from flask import Flask
app = Flask(__name__)
@app.route("/")
def hello():
jsonString = requests.get(os.environ.get("JSON_SERVICE_URL", "http://localhost:9000"))
widgets = simplejson.loads(jsonString.content)
htmlResponse = "<html><body>"
for widget in widgets:
htmlResponse += "Widget " + str(widget['id']) + " = " + widget['name'] + "</br>"
htmlResponse += "</body></html>"
return htmlResponse
if __name__ == "__main__":
port = int(os.environ.get("PORT", 5000))
app.run(host='0.0.0.0', port=port)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2432 次 |
| 最近记录: |