10

随着我对 RESTful API 的深入了解,该方法的(良好)简单性意味着您生成大量样板代码,以及必须在三个或四个不同位置匹配的代码,例如基于 Jersey 的堆栈:

  1. 提供控件的网页上的 HTML(按钮Create Foo
  2. 网页上的 JS,它制定 JSON 和创建 Foo 的请求
  3. FooRest处理请求并创建 Foo的类方法
  4. 一个Foo要实例化的类,它将操纵数据结构

是否有工具可以自动为部分或全部代码提供起点,可能从像 JSON 数据结构这样简单的东西开始?例如,提供:

card: {
  methods: [GET],
}
handOfCards: {
  methods: [GET POST PUT DELETE],
}

并且至少以 Ajax 请求结束,带有指定方法的 CardRest 和 HandOfCardsRest 类,以及带有属性或 getter/setter 的 Card 和 HandOfCards 类?

4

5 回答 5

3

你试过Backbone.js吗?它是一个为您处理 REST Ajax 请求的 JavaScript 库。它允许您定义模型来包装数据,并提供 setter、getter、保存和删除功能等。

它还允许您将模型绑定到生成 UI HTML 的视图。

于 2012-06-18T19:32:45.157 回答
1

您的目标可能不应该是生成样板代码,而是实际编写更少的代码。

Spark是一个基于Sinatra的 Java 微型 Web 框架。

这是一些示例代码:

import static spark.Spark.*;
import spark.*;

public class HelloWorld {
    public static void main(String[] args) { 
        get(new Route("/") {
           @Override
           public Object handle(Request request, Response response) {
              // .. Show something ..
           }
        });

        post(new Route("/") {
           @Override
           public Object handle(Request request, Response response) {
              // .. Create something .. 
           }
        });

        put(new Route("/") {
           @Override
           public Object handle(Request request, Response response) {
              // .. Update something ..
           }
        });

        delete(new Route("/") {
           @Override
           public Object handle(Request request, Response response) {
              // .. annihilate something ..
           }
        });

        options(new Route("/") {
           @Override
           public Object handle(Request request, Response response) {
              // .. appease something ..
           }
        });
    }
}
于 2012-06-20T18:21:20.807 回答
1

作为Juan 答案的替代(或补充),您可能想查看Knockback.js,它充分利用了 Knockout 并添加了Backbone.js的优点。Backbone 通过其“同步”功能支持 RESTful API。引用他们的网站:

Backbone.sync 的方法签名是 sync(method, model, [options])

method – the CRUD method ("create", "read", "update", or "delete")
model – the model to be saved (or collection to be read)
options – success and error callbacks, and all other jQuery request options
于 2012-06-20T19:59:46.367 回答
1

我认为几乎所有 *rails 应用程序都会为您完成所有这些工作。Grails是我现在最喜欢的,一旦你完成了初始设置(一个命令),你就可以用另一个命令创建域类。

一旦创建了这些,您就可以生成视图 (html) 和控制器,以使用单个命令处理所有这些操作,并且样板对于许多初始站点来说已经足够了。它甚至会为您创建测试用例,尽管您需要定义实际测试的作用。您可以很容易地按照约定对其进行编程,或者从 URL -> 控制器操作创建自己的映射。它有大量的插件支持,并且可以轻松处理内置的远程表单提交(通过 javascript)。

它不需要 json 数据结构来创建,但是域很容易创建(使用 groovy),并且它自动连接 getter/setter、服务注入等,因为它基于 Spring Framework。

于 2012-06-22T22:39:59.713 回答
0

您可能想完全尝试不同的方法,并尝试像project lombok这样的想法。它至少会让你nix所有的getter和setter。

于 2012-06-15T15:52:57.477 回答