Tag: rest

RESTful设计,如何命名CRUD等人的页面?

我正在开发一个网页,其中有很多页面不属于我对RESTful设计的有限理解,这主要是: Create, Read, Update, Delete, Show, List 这是一个问题:当页面没有整齐地落入CRUD / show / list时,什么是标记动作/路线的好系统? 我的一些页面一次有关于多个表的信息。 我正在建立一个网站,在登录后为一些客户提供“基地”。 它没有给他们任何关于他们自己的信息,所以它不应该是,例如,/ customers / show / 1。 它确实有关于公司的信息,但网站上还有其他页面以不同的方式执行。 遇到这些情况后你会怎么做? 这个“家庭基地”向客户展示,它主要有关于公司的信息(但不是唯一的)。 第二种情况:我在客户和公司之间有一个名为“匹配”的表。 这些匹配在网站的不同部分以完全不同的方式访问(不同的布局,不同的CSS表,访问它们的不同类型的用户等等。它们不能全部匹配/显示。标记其他的最佳方式是什么? 非常感谢。 =)

使用PHP创建RESTful API和网站

我有一个我之前写的PHP应用程序,我想添加一个RESTful API。 我还想扩展网站,使其更像是一个Rails应用程序,就您调用的URL来获取系统中的项目。 有没有办法用Railsy方式调用PHP中的项目而不创建各种文件夹和索引页面? 如何在不使用GET查询标记的情况下在PHP中调用信息?

在RESTful路由中获取基于“名称”的URL而不是基于id的URL

如果我为控制器“画廊”实现RESTful路由,如下所示: map.resources :galleries 默认情况下,此控制器的show url为: /galleries/:id 这会响应对/ gallery / 1等的任何请求 如果我在数据库中有一个带有’name’属性并且值为’portraits’的库记录,该怎么办? 我可以这样做: /galleries/portraits 而不是做 /galleries/1 ?

Rails使用’/’和Slugs进行RESTful路由

我正在寻找类似wordpress slug的东西,其中我有一个像这样的URL,同时保持RESTful路由: http://foo.com/blog/2009/12/04/article-title 我对保持RESTFUL路由感兴趣的原因是我无法使用很多插件,因为我使用的是自定义路由。 我已经完成了RESTful外观: map.connect ‘/blog/:year/:mon/:day/:slug’, :controller => ‘posts’, :action => ‘show’, :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/, :slug => /.+/, :requirements => { :year => /\d{4}/, :month => /\d{2}/, :day => /\d{2}/, :slug => /.+/ } 为了编写链接,我必须编写自定义link_to帮助程序来生成正确的URL。 我真的想做这个RESTful并让link_to post_path(@ post)产生上面的URL和link_to edit_post_path(@post)…文章标题/编辑 我也有:has_many => [:comments]我也会这样做。 我尝试过的link_to看起来像这样: ‘posts’, :action => ‘show’, :year […]

Rails中的非RESTful操作

好吧,当GitHub关闭时,代码设计问题: 我总是在rails应用程序(通常)中使用非标准RESTful操作进行分析瘫痪。 我有乔布斯,我希望能够取消(并重新激活)它们。 它不像设置复选框那么简单; 还有一些其他的事情需要发生。所以我不能只使用现有的JobsController#update动作。 我认为这是我的选择: 1.只需添加cancel并reactivate现有作业控制器即可。 路线将是这样的: POST /admin/jobs/cancel/:job_id POST /admin/jobs/reactivate/:job_id (不是RESTful;假设这是一个坏主意) 2.使用create和destroy动作创建JobCancellationsController 。 重新激活作业会destroy JobCancellation资源。 我将使用嵌套路由,如下所示: resources :jobs, except: :show do resource :job_cancellation, only: [:create, :destroy] end 默认情况下会给我一些类似的东西 一个) POST /admin/jobs/:job_id/job_cancellation DELETE /admin/jobs/:job_id/job_cancellation 我可以在不改变控制器的情况下整理路线,就像: b) POST /admin/jobs/:job_id/cancellation DELETE /admin/jobs/:job_id/cancellation 虽然这看起来不太直观 – “取消”会更好cancel 。 所以我可以在保持控制器相同的同时改变路线: C) POST /admin/jobs/:job_id/cancel DELETE /admin/jobs/:job_id/cancel 第一条路线现在有意义(虽然严格来说不是RESTful ?),但第二条路线不是……“删除工作取消”? 所以你要改成它: d) […]

使用devise进行RESTful登录(Rails 4)

如何使用Ruby on Rails中的设计进行RESTful注册和登录(我使用的是版本4)? 我找不到任何关于我应该POST到服务器的参数(例如电子邮件,密码)的文档。 在当前版本的设计中,似乎不支持使用JSON数据(例如通过AJAX)的RESTful登录 – 默认行为是为任何类型的请求发送回整个HTML页面,而不是JSON对象用于专门处理JSON请求。 这是否意味着我需要创建/扩展自定义控制器以使用JSON处理用户注册和登录RESTful应用程序? 如果是这样,请详细说明。

如何限制Rails路由文件中的资源格式

在Rails中路由资源时,可选的format属性会自动附加到生成的路由中。 这样可以将所讨论的资源请求为XML,HTML等。实际允许的格式通常在控制器中使用respond_to来描述。 但在许多情况下,您只想支持HTML,并且在每个控制器的每个操作中编写respond_to :html感觉都是一种开销。 因此,如果在routes.rb文件中构建路由时已经有限制允许内容类型的方法,那将是很酷的,例如 map.resources :users, :formats => :html map.resources :users, :formats => [:html, :xml] map.resources :users, :formats => {:index => :html, :show => [:html, :xml]} 有没有办法实现本机或通过插件? PS解决此问题的常用方法是忽略该问题,并且不要在操作中使用respond_to 。 但这实际上并不限制允许的内容类型。 相反,它只是期望视图目录中存在每种可能的内容类型的模板。 如果在请求时不存在,系统将抛出HTTP 500错误。

使用单个标识符RESTful嵌套资源路由

在我的Rails应用程序中,我在两个实体之间有一个相当标准的has_many关系。 Foo有零个或多个Bars ; 一个Bar恰好属于一个Foo 。 Foo和Bar都由单个整数ID值标识。 这些值在所有各自的实例中都是唯一的。 Bar的存在依赖于Foo:拥有没有Foo的Bar是没有意义的。 有两种方法可以RESTful地引用这些类的实例。 给定Foo.id为“100”且Bar.id为“200”: 通过他们自己的“顶级”URL路由引用每个Foo和Bar,如下所示: /富/ 100 /棒/ 200 参考栏通过其Foo实例作为嵌套资源: /富/ 100 /富/ 100 /酒吧/ 200 我喜欢#2中的嵌套路由,因为它更接近地表示实体之间的实际依赖关系。 然而,它似乎涉及很多额外的工作,收益很少。 假设我知道一个特定的酒吧,我不需要被告知特定的Foo; 我可以从Bar本身那里得到它。 事实上,我可能应该在任何地方validation路由Foo(这样你就不能做/ foo / 150 / bar / 200,假设Bar 200没有分配给Foo 150)。 最终,我看不出这给我带来了什么。 那么,是否有任何其他论据支持或反对这两种路由方案? 澄清点 我主要关注特定Bars的RESTful更新/显示/删除。 为了获得特定Foo的Bar列表(通常是Rails中的“索引”动作),有一个嵌套路由,如/ foo / 100 / bar,这是完全合理的。 这条路线上的页面可以很容易地链接到/ bar / x和/ foo / 100 / bar […]

Rails中的漂亮(过时)RESTful URL

我希望我的网站url看起来像这样: example.com/2010/02/my-first-post 我的Post模型有slug字段(’my-first-post’)和published_on字段(我们将从中扣除url中的年份和月份部分)。 我希望我的Post模型是RESTful的,所以像url_for(@post)这样的东西就像它们应该的那样工作,即:它应该生成上面提到的url。 有没有办法做到这一点? 我知道你需要覆盖to_param并使用map.resources :posts设置:requirements选项设置,但我无法全部工作。 我几乎完成了,我90%在那里。 使用resource_hacks插件我可以实现这个目的: map.resources :posts, :member_path => ‘/:year/:month/:slug’, :member_path_requirements => {:year => /[\d]{4}/, :month => /[\d]{2}/, :slug => /[a-z0-9\-]+/} rake routes (…) post GET /:year/:month/:slug(.:format) {:controller=>”posts”, :action=>”show”} 并在视图中: @post.slug, :year => ‘2010’, :month => ’02’) %> 生成正确的example.com/2010/02/my-first-post链接。 我也想这样做: 但它需要覆盖模型中的to_param方法。 应该相当容易,除了事实, to_param必须返回String ,而不是Hash因为我喜欢它。 class Post ‘my-first-post’, :year => ‘2010’, :month […]

适用于RESTful rails应用程序的简易面包屑

是否有任何辅助方法(除了默认的rails breadcrumb )为特定页面动态生成面包屑导航,而不必在RESTful应用程序中传递简单的参数? 也就是说,哪些东西可以自动计算用户基于她正在访问的RESTurl的位置? 对于上面提到的实现,我们需要传递像 rest 当前页面 必须有一种方法来概括代码,以便不需要参数传递,并且应该以最少的配置适用于所有RESTful应用程序。