问题标签 [openrasta]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
535 浏览

http - OpenRasta 无法正确反序列化 PUT 上的实体

在 OpenRasta 处理程序中处理 HTTP PUT 时,我遇到了一些非常奇怪的行为。处理程序方法签名如下所示:

这是相关的ResourceSpace配置:

CustomerForm看起来像这样:

ContactInfo看起来像这样:

我的问题是当CustomerFormPUT 到服务器时,OpenRasta 无法正确反序列化它。尽管它是从客户端成功发送的,但它的作用是用一ContactInfo组反序列化它。null我什至深入研究IRequest.Entity.Stream以确保我需要的 XML 确实存在,它是:

当方法中接收到的反序列化对象不包含时,如何IRequest.Entity.Stream包含必要的数据?我有确保序列化和反序列化完美工作的测试,我什至有一个完全相同的处理程序也可以工作。只是当 HTTP 方法为 PUT 时,它已设置为.CustomerFormPut(CustomerForm)Post(CustomerForm)CustomerFormContactInfonull

我已经彻底阅读了 OpenRasta 的调试输出,它说的是:

我发现的唯一奇怪之处是在这一步之后 aMissingMethodException被抛出FirstChanceException(但从不冒泡),但是它的堆栈跟踪太短了,我不知道问题可能是什么:

我不知道为什么 aMissingMethodException被抛出以及为什么如果我不订阅该AppDomain.FirstChanceException事件它不会冒泡,但这可能与为什么 myCustomerForm没有正确反序列化有关。但是,由于它确实在 HTTP POST 上正确反序列化,我对此表示怀疑。

想法?

0 投票
1 回答
502 浏览

c# - OpenRasta - 资源 uri 不正确时返回的状态码不正确

我在 .net 服务中使用 OpenRasta 框架,并且在处理程序中有如下方法

我的配置如下所示:

我的要求如下

请注意资源参数:删除方法接受整数,而我正在传递一个字符。

有了这个请求,我希望得到 404 状态代码,而不是 405 Method not allowed。任何人都可以解释这种行为,为什么它返回 405?

如果我在 URI 中给出不正确的资源名称,它会返回 404。例如:URI:http://localhost/OtherResource/a

更新:我正在使用 OpenRasta 的 InMemoryHost 进行测试,并且支持删除方法

0 投票
15 回答
99721 浏览

iis - IIS 7.5 + 为 RESTFul 服务启用 PUT 和 DELETE,无扩展

我试图了解 IIS 7.5 如何处理 POST 和 PUT 请求。

我正在使用 OpenRasta 框架编写一个 RESTful 服务。POST 操作没有任何问题,但相同 URL 的 PUT 操作没有。它返回如下错误

网址是这样的“http://localhost/MyService/Resource.Something.manifest”

相同的设置在 Visual Studio 开发 IIS 中运行良好。

解决方案

基本上默认的 ExtensionlessUrlHandler 不接受 PUT 和 DELETE 动词。只需要添加它们。

0 投票
1 回答
296 浏览

c# - 自定义身份验证 OpenRasta

嗨,我正在构建一个具有基于令牌的身份验证的应用程序,例如:

http://www.host.com/resource?token=589437534

我打算写一个拦截器或类似的东西,但我想有一些更优雅的东西我找不到。

使用 OpenRasta 实现这种身份验证的最佳方式是什么?

0 投票
1 回答
119 浏览

c# - 忽略响应资源类中的属性 - Openrasta

我正在使用 Openrasta 框架。我有一个简单的 POCO,它在我的 API 中使用,它将作为 ResponseResource 发送给客户端。如下所示:

向用户发送响应时,我不想将属性“Id”发送回用户。如何使 openrasta 序列化程序忽略此属性?我尝试为此属性添加 XmlIgnore 属性,但它不起作用。

有任何想法吗?

0 投票
1 回答
146 浏览

streaming - OpenRasta 流式响应

有谁知道是否可以在 OpenRasta 中写入响应流而不是将对象作为响应资源返回?或者,我是否能够实现 HTTP 处理程序但仍然利用 OpenRasta 的 URL 重写?

谢谢

克里斯

0 投票
2 回答
132 浏览

rest - OpenRasta 访问子元素

我有一个人的设计,该人拥有一系列主题,例如 Person ---> Subject (1 to many)

如果我访问 Id 为 1 ( http://localhost/person/1) 的人,它将显示该人的所有详细信息和集合详细信息。

我如何设计一个 URL 来访问这个人的主题?应该是 http://localhost/person/1/subjects吗?我可以发布到该 URL 以添加主题吗?我可以输入该 URL 来更新主题吗?

什么处理程序应该处理一个人的主题?它应该是带有 Get 和 personid 参数的主题处理程序,还是返回带有主题返回方法的主题集合的人员处理程序?

0 投票
1 回答
190 浏览

routes - OpenRasta 路由约束

如果我希望能够通过 /Person/1 和 /Person/Blair 找到一个人,我该怎么做。

配置类:

和处理程序

有没有办法使用像 asp.net mvc 这样的约束?

任何帮助,将不胜感激。

0 投票
1 回答
175 浏览

rest - 使用 OpenRasta 轻松地将项目添加到资源

我正在使用 OpenRasta 创建一个调查应用程序。

我有一个 SurveyResource,可在 /surveys/{id} 访问并在 /surveys/{id}/edit 进行编辑

我现在想在调查中添加问题,因为这是调查的重点,但我不确定这样做最安静的方式是什么以及如何在 OR 中进行设置。

我想我应该有一个 QuestionResource(包含问题类型、问题文本等的详细信息),它应该发布到 /surveys/{id}/questions 并由问题处理程序处理,但我无法工作了解如何配置 OR。

我已在https://github.com/oharab/OpenSurvey/tree/add_question_to_survey将我的项目推送到 github

谁能帮我?

0 投票
2 回答
226 浏览

openrasta - OpenRasta - 将错误编码为 JSON 而不是 HTML

我注意到 OpenRasta.Core 有一个 HtmlErrorCodec,它负责在处理程序抛出异常时呈现服务器错误页面。

当我向异常抛出处理程序发出 JSON Ajax 请求时,会选择此编解码器并将异常呈现为 HTML。

我试图用 MediaType("application/json") 为 IList<Error> 注册我自己的 IMediaTypeWriter,这样我就可以将 JSON 发送回浏览器,但它似乎被忽略了。任何人都可以帮忙吗?

谢谢尼尔