【问题标题】:37signals Highrise .NET (c#) API [closed]37signals Highrise .NET (c#) API [关闭]
【发布时间】:2011-08-04 19:17:36
【问题描述】:

我正在寻找 37signals Highrise REST API 的 .NET (c#) 包装器。 可悲的是,我找不到任何真正合适的东西。 有没有人开发过类似的东西或者有链接可以分享?

【问题讨论】:

  • Highrise API 被实现为 XML 响应。使用 XSD.EXE 针对该 XML 创建一些 C# 类应该足够简单。
  • 是的,我知道。我只是想知道是否已经有一些可用的“开箱即用”的东西。还是谢谢!
  • xsd.exe 在这种情况下会使事情变得过于复杂——只需创建一个 POCO 类型。

标签: c# api highrise


【解决方案1】:

使用 RestSharp - http://restsharp.org/

【讨论】:

    【解决方案2】:

    澄清一下,虽然您可能会发现一些特定于 Highrise 的 REST API 包装器库,但您可能也可以轻松地使用通用 REST API 包装器(例如上面提到的 RestSharp)。

    我提出了另一个项目,我目前正在使用该项目通过 REST API 访问 Highrise。

    该库名为 Hammock,可在 github 上找到:https://github.com/danielcrenna/hammock

    【讨论】:

      【解决方案3】:

      我认为你应该试试这个:

      http://sdk.welovehighrise.com/

      它在我们的应用程序中完美运行

      【讨论】:

      • 哇! 200 美元似乎有点贵。
      【解决方案4】:

      正如一些人所建议的,RestSharpHighRise API 一起使用非常容易。至少有一个人建议使用xsd.exe,我强烈反对——这会使事情变得过于复杂。相反,创建一个 POCO 类型,只包含您想要获取/设置的项目。像这样:

      namespace Highrise.Model
      {
          public class Person
          {
              [XmlElement("author-id")]
              public string AuthorId
              {
                  get;
                  set;
              }
      
      
              [XmlElement("background")]
              public string Background
              {
                  get;
                  set;
              }
      
              [XmlElement("first-name")]
              public string FirstName
              {
                  get;
                  set;
              }
      
              [XmlElement("last-name")]
              public string LastName
              {
                  get;
                  set;
              }
      
              [XmlElement("id")]
              public string Id
              {
                  get;
                  set;
              }
      
          }
      
          public class People : List<Person>{}
      }
      

      然后,只需像这样使用 RestSharp 库:

      //  Setup our client:
      var client = new RestClient("https://yourhighrisename.highrisehq.com");
      client.Authenticator = new HttpBasicAuthenticator("YOUR_API_KEY_HERE", "X");
      
      //  Create our request:
      var request = new RestRequest("/people.xml", Method.GET);
      
      //  Execute our request with our client:
      RestResponse<People> response = (RestResponse<People>) client.Execute<People>(request);
      

      【讨论】:

      • 非常好,有这样偶然发帖的样本吗?
      • 我没有,但你可能想看看这个问题并回答提示:stackoverflow.com/questions/11400879/…
      • 我明白了,谢谢!写一个漂亮的小包装:)
      【解决方案5】:

      我知道我正在重新提出一个老问题,但如果这有助于从 Google 来到这里的人(我在寻找相同的东西时自己发现了这个线程),我已经创建了一个新的 Github repository 用于.NET Highrise API 包装器。

      【讨论】:

        猜你喜欢
        • 2023-03-08
        • 1970-01-01
        • 2017-06-09
        • 2020-07-09
        • 2010-09-07
        • 1970-01-01
        • 2011-01-23
        • 2022-07-01
        • 2011-07-06
        相关资源
        最近更新 更多