【问题标题】:What are some web-API-frameworks for .NET? Like Frapi or grape.NET 有哪些 web-API 框架?像 Frapi 或葡萄
【发布时间】:2011-01-03 15:14:05
【问题描述】:

有两个有趣的框架可用于 Ruby 和 PHP,它们提供了构建 API 的工具。

红宝石:葡萄 https://github.com/intridea/grape/wiki

PHP:弗拉皮 http://getfrapi.com/

有没有人知道 .NET 中的等效项目?

例如,在 Grape 中,您可以创建一个 ruby​​ 类,如下所示:

class MyAPI < Grape::API
    prefix 'api'

    get 'hello' do
        {:hello => 'world'}
    end
end

这允许您发出这样的 HTTP 请求:

GET /api/hello
{“hello”:”world”}

这很甜蜜。


编辑


经过反思,似乎 WCF Http Rest 服务可能与 Frappi 和 Grape 最相似,这让我的问题有点愚蠢。但我仍然希望能收集到一些项目,这些项目有专门用于创建 API 的工具甚至一些框架。

Sprache,(在下面回答)似乎很有趣。

【问题讨论】:

    标签: c# .net api frameworks


    【解决方案1】:

    Kayak 是一款轻量级服务器。它让您可以轻松创建这些路由和响应:

    https://github.com/kayak/kayak

    来自示例:

    using System;
    using System.Collections.Generic;
    using System.Net;
    using System.Text;
    using Kayak;
    
    namespace KayakExamples
    {
        class Simple
        {
            public static void Run()
            {
                var server = new DotNetServer();
    
                var pipe = server.Start();
    
                server.Host((env, respond, error) =>
                    {
                        respond(new Tuple<string, IDictionary<string, IEnumerable<string>>, IEnumerable<object>>(
                                "200 OK",
                                new Dictionary<string, IEnumerable<string>>() 
                                {
                                    { "Content-Type",  new string[] { "text/html" } }
                                },
                                new object[] { Encoding.ASCII.GetBytes("Hello world.") }
                            ));
                    });
    
                Console.WriteLine("Listening on " + server.ListenEndPoint);
                Console.WriteLine("Press enter to exit.");
                Console.ReadLine();
    
                pipe.Dispose();
            }
        }
    }
    

    【讨论】:

      【解决方案2】:

      这是一篇关于外部域特定语言的好文章:
      http://nblumhardt.com/2010/01/building-an-external-dsl-in-c/

      这是文章中讨论的工具,Sprache
      http://code.google.com/p/sprache/

      【讨论】:

      • 这是一个有趣的项目,但它不是更具体一点解析吗?这是一个好的开始,但我也在寻找能够抽象出 REST 服务创建的东西。
      【解决方案3】:

      取决于你到底想做什么。您可以通过 JSON or XML HTTP web service using WCF 公开您的 API。您还可以通过ASP.Net MVC 公开一个控制器/动作类 Rails API。

      【讨论】:

      • 嗯,也许我对这个问题有点不理解。 ASP.Net 不太适合 Grape 的解决方案,但我认为 REST WCF 是......
      • ASP.Net 可能不是,但 ASP.Net MVC 可能是。您将能够创建具有某些操作的控制器,并且您的视图可以只是您的 XML/JSON 输出。
      • 对,但是如果你看一下上面的例子,没有必要创建控制器或视图。它是一个类的简单扩展和一个带有一些特殊钩子的方法定义。事实上,该示例变得更深入,可以非常快速地定义整个 API。 ASP.MVC 很像 Zend Framework 或 Ruby on Rails,但 Grape 和 Frapi 的不同之处在于它们为构建 REST API 提供了一个非常简洁的框架。我对 WCF-REST 的经验很少,但我认为这可能就是所需要的。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-12-06
      • 2016-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-06-13
      • 1970-01-01
      相关资源
      最近更新 更多