问题标签 [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.
http - OpenRasta 无法正确反序列化 PUT 上的实体
在 OpenRasta 处理程序中处理 HTTP PUT 时,我遇到了一些非常奇怪的行为。处理程序方法签名如下所示:
这是相关的ResourceSpace
配置:
CustomerForm
看起来像这样:
ContactInfo
看起来像这样:
我的问题是当CustomerForm
PUT 到服务器时,OpenRasta 无法正确反序列化它。尽管它是从客户端成功发送的,但它的作用是用一ContactInfo
组反序列化它。null
我什至深入研究IRequest.Entity.Stream
以确保我需要的 XML 确实存在,它是:
当方法中接收到的反序列化对象不包含时,如何IRequest.Entity.Stream
包含必要的数据?我有确保序列化和反序列化完美工作的测试,我什至有一个完全相同的处理程序也可以工作。只是当 HTTP 方法为 PUT 时,它已设置为.CustomerForm
Put(CustomerForm)
Post(CustomerForm)
CustomerForm
ContactInfo
null
我已经彻底阅读了 OpenRasta 的调试输出,它说的是:
我发现的唯一奇怪之处是在这一步之后 aMissingMethodException
被抛出FirstChanceException
(但从不冒泡),但是它的堆栈跟踪太短了,我不知道问题可能是什么:
我不知道为什么 aMissingMethodException
被抛出以及为什么如果我不订阅该AppDomain.FirstChanceException
事件它不会冒泡,但这可能与为什么 myCustomerForm
没有正确反序列化有关。但是,由于它确实在 HTTP POST 上正确反序列化,我对此表示怀疑。
想法?
c# - OpenRasta - 资源 uri 不正确时返回的状态码不正确
我在 .net 服务中使用 OpenRasta 框架,并且在处理程序中有如下方法
我的配置如下所示:
我的要求如下
请注意资源参数:删除方法接受整数,而我正在传递一个字符。
有了这个请求,我希望得到 404 状态代码,而不是 405 Method not allowed。任何人都可以解释这种行为,为什么它返回 405?
如果我在 URI 中给出不正确的资源名称,它会返回 404。例如:URI:http://localhost/OtherResource/a
更新:我正在使用 OpenRasta 的 InMemoryHost 进行测试,并且支持删除方法
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 动词。只需要添加它们。
c# - 自定义身份验证 OpenRasta
嗨,我正在构建一个具有基于令牌的身份验证的应用程序,例如:
http://www.host.com/resource?token=589437534
我打算写一个拦截器或类似的东西,但我想有一些更优雅的东西我找不到。
使用 OpenRasta 实现这种身份验证的最佳方式是什么?
c# - 忽略响应资源类中的属性 - Openrasta
我正在使用 Openrasta 框架。我有一个简单的 POCO,它在我的 API 中使用,它将作为 ResponseResource 发送给客户端。如下所示:
向用户发送响应时,我不想将属性“Id”发送回用户。如何使 openrasta 序列化程序忽略此属性?我尝试为此属性添加 XmlIgnore 属性,但它不起作用。
有任何想法吗?
streaming - OpenRasta 流式响应
有谁知道是否可以在 OpenRasta 中写入响应流而不是将对象作为响应资源返回?或者,我是否能够实现 HTTP 处理程序但仍然利用 OpenRasta 的 URL 重写?
谢谢
克里斯
rest - OpenRasta 访问子元素
我有一个人的设计,该人拥有一系列主题,例如 Person ---> Subject (1 to many)
如果我访问 Id 为 1 ( http://localhost/person/1
) 的人,它将显示该人的所有详细信息和集合详细信息。
我如何设计一个 URL 来访问这个人的主题?应该是
http://localhost/person/1/subjects
吗?我可以发布到该 URL 以添加主题吗?我可以输入该 URL 来更新主题吗?
什么处理程序应该处理一个人的主题?它应该是带有 Get 和 personid 参数的主题处理程序,还是返回带有主题返回方法的主题集合的人员处理程序?
routes - OpenRasta 路由约束
如果我希望能够通过 /Person/1 和 /Person/Blair 找到一个人,我该怎么做。
配置类:
和处理程序
有没有办法使用像 asp.net mvc 这样的约束?
任何帮助,将不胜感激。
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
谁能帮我?
本
openrasta - OpenRasta - 将错误编码为 JSON 而不是 HTML
我注意到 OpenRasta.Core 有一个 HtmlErrorCodec,它负责在处理程序抛出异常时呈现服务器错误页面。
当我向异常抛出处理程序发出 JSON Ajax 请求时,会选择此编解码器并将异常呈现为 HTML。
我试图用 MediaType("application/json") 为 IList<Error> 注册我自己的 IMediaTypeWriter,这样我就可以将 JSON 发送回浏览器,但它似乎被忽略了。任何人都可以帮忙吗?
谢谢尼尔