Questions tagged «api»

请勿使用:标记您要使用的库,[api-design]或其他合适的方法。要求我们推荐或找到API的问题是题外话。

8
使用POST而不是GET的REST API
假设服务提供了一些我可以像这样使用的功能: GET /service/function?param1=value1&param2=value2 我可以在POST查询中使用它吗? POST /service/function { param1 : value1, param2 : value2 } 这两个查询是否相同?我可以在任何情况下使用第二种变体,或者文档中应明确指出可以同时使用GET和POST查询?
76 api  rest  post  get 

6
传统Web应用程序和API中的身份验证,授权和会话管理
如果我错了,请纠正我:在传统的Web应用程序中,浏览器会自动将会话信息附加到服务器的请求中,以便服务器可以知道请求的来源。实际上究竟附加了什么? 但是,在基于API的应用程序中,此信息不会自动发送,因此在开发API时,我必须检查自己(例如,请求是否来自经过身份验证的用户)?通常如何做?


12
如何从条形码中查找有关书籍的数据?[关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 我正在构建世界上最简单的库应用程序。我想要做的就是使用典型的扫描仪(只需在字段中键入条形码的编号)在书籍的UPC(条形码)中进行扫描,然后使用它来查找有关书籍的数据...最小值,标题,作者,出版年份,以及Dewey十进制或国会图书馆的目录号。 目的是打印出一个很小的标签(带有“书脊标签”),上面贴有我可以粘贴在书脊上的卡片目录号,然后我可以通过公司图书馆书架上的卡片目录号对书籍进行分类。这样一来,类似主题的书就趋于彼此靠近,例如,如果您知道要查找有关会计的书,那么您所要做的就是找到一些有关会计的书,而您会看到另一半紧挨着它,这使浏览图书馆变得很方便。 似乎有很多Web API可以做到这一点,包括亚马逊和国会图书馆。但是这些都让我非常困惑。我真正想要的是一个单一的高级函数,该函数采用UPC条形码编号并返回有关该书的一些基本数据。

3
确保REST API的安全而不用费吹灰之力
在设计REST API时,通常先对用户进行身份验证吗? 我正在寻找的典型用例是: 用户想要获取数据。当然,我们喜欢分享!获取公共API密钥并阅读! 用户想要存储/更新数据...等等!你是谁,你能做到吗? 我想一次构建它,并允许说一个Web应用程序,一个Android应用程序或一个iPhone应用程序来使用它。 REST API似乎是符合此类要求的合理选择 为了说明我的问题,我将使用一个简单的示例。 我在数据库中有一个项目,该项目具有等级属性(1到5的整数)。 如果我正确理解REST,则将使用我选择的返回CSV,XML或JSON的语言来实现GET请求,如下所示: http://example.com/product/getrating/{id}/ 假设我们选择JSON,我们返回: { "id": "1", "name": "widget1", "attributes": { "rating": {"type":"int", "value":4} } } 这对于面向公众的API很好。我明白了。 我有很多问题要问,如何将其与安全模型结合起来?我习惯了Web应用程序安全性,在该状态下,我始终具有标识用户的会话状态,因此无论他们决定发送给我什么,我都可以控制他们可以做什么。据我了解,这不是RESTful的,因此在这种情况下将是一个不好的解决方案。 我将尝试使用相同项目/等级的另一个示例。 如果用户“JOE”希望将添加评级到项目 可以使用以下方法完成: http://example.com/product/addrating/{id}/{givenRating}/ 在这一点上,我想存储表示“ JOE”给予产品{id}等级为{givenRating}的数据。 问题:我怎么知道请求来自“ JOE”而不是“ BOB”。 此外,如果要获取更敏感的数据(例如用户的电话号码)怎么办? 到目前为止,我得到的是: 1)使用HTTP的内置功能对每个请求(纯HTTP或HTTPS)进行身份验证。 这意味着现在每个请求都采用以下形式: https://joe:joepassword@example.com/product/addrating/{id}/{givenRating}/ 2)使用带有私钥和公钥的Amazon S3之类的方法:http : //www.thebuzzmedia.com/designing-a-secure-rest-api-without-oauth-authentication/ 3)无论如何都要使用cookie并破坏REST的无状态部分。 第二种方法对我来说似乎更好,但我想知道我是否真的必须重新发明整个东西?自己哈希,存储,生成密钥等? 这听起来很像在典型的Web应用程序中使用会话并自己重写整个堆栈,这对我来说通常意味着“您做错了”,尤其是在处理安全性时。 编辑:我想我也应该提到OAuth。

13
iTunes Connect API [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 2年前关闭。 改善这个问题 iTunes Connect是否有API?某些应用程序如何将财务和销售报告下载到计算机?是否有一些C / Objective-C API包装器?

4
如何在RESTful API中处理对象层次结构?
我目前正在为现有的PHP应用程序设计API,为此,我正在研究REST作为一种明智的体系结构方法。 我相信我对关键概念有一个合理的了解,但是我正在努力寻找能够解决对象层次结构和REST的人。 这是问题所在... 在[应用程序]业务对象层次结构中,我们有: Users L which have one-to-many Channel objects L which have one-to-many Member objects 在应用程序本身中,我们使用延迟加载方法根据需要用这些对象的数组填充User对象。我相信用面向对象的术语讲,这是对象聚合,但是我已经看到了各种命名不一致的问题,并且不关心就精确命名约定发动战争。 现在,考虑一下我有一些松散耦合的对象,这些对象可能会/可能不会填充,这取决于应用程序的需求。 从REST的角度来看,我正在尝试确定应采用的方法。这是我目前的想法(暂时仅考虑GET): 选项1-完全填充对象: GET api.example.com/user/{user_id} 读取User对象(资源),并返回带有所有可能的Channel和Member对象的用户对象,并预先加载和编码(JSON或XML)。 优点:减少对象数量,无需遍历对象层次结构 缺点:必须完全填充对象(昂贵) 选项2-填充主要对象,并包括指向其他​​对象资源的链接: GET api.example.com/user/{user_id} 读取用户对象(资源),并返回用户对象填充的用户数据和两个列表。 每个列表都引用适当的(子)资源,即 api.example.com/channel/{channel_id} api.example.com/member/{member_id} 我认为这与超媒体的含义很接近(或完全一样)-客户端可以根据需要获取其他资源(只要我合理地标记它们)。 优点:客户端可以选择加载下属,否则,可以更好地分离对象作为REST资源。 缺点:需要进一步的行程才能获得辅助资源 选项3-启用递归检索 GET api.example.com/user/{user_id} 阅读用户对象,并包括指向子对象列表的链接,即 api.example.com/user/{user_id}/channels api.example.com/user/{user_id}/members / channels调用将以以下形式返回频道资源列表: api.example.com/channel/{channel_id} 优点:主要资源公开了获取子目录的位置,而不是子目录(更RESTful?),不需要先要求下级,下级列表生成器(/ channels和/ members)提供了接口(类似方法)响应更多的服务喜欢。 缺点:现在需要三个调用才能完全填充对象 选项4-(重新)考虑REST的对象设计 …
72 api  class  rest  object  hierarchy 

4
电视指南列表API [关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 有人知道提供频道(通过API或下载)为所有频道和有线电视提供商提供电视节目的提供商吗? 还是有独立的公司收集/提供此类数据?API / REST / SOAP接口会很棒。

4
UEFA / FIFA得分API [关闭]
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 4年前关闭。 改善这个问题 有人知道UEFA或FIFA是否提供足球比赛,官方球队名单,转会等等的得分API? 我找到了Footytube API,但不确定其稳定性和完整性。
72 web-services  api  rss 

5
craigslist.org是否有开发人员API?
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗?更新问题,使其成为Stack Overflow的主题。 5年前关闭。 改善这个问题 我正在构建一个应用程序,并希望通过单击按钮自动发布到craigslist。有什么办法吗? 我有一个帐户,将为每个职位付费。
71 api  craigslist 

13
有电影放映时间api吗?[关闭]
从目前的情况来看,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 8年前关闭。 有谁知道通过邮政编码访问电影放映时间的任何(最好是免费)受支持的api? 我不相信任何现有的api(例如netflix或imdb)都可以提供此信息。
71 api  movies 

4
如何以RESTful方式公开验证API?
我通常是RESTful API设计的狂热者,但是我不确定如何将REST原理应用于验证API。 假设我们有一个用于查询和更新用户的个人资料信息(名称,电子邮件,用户名,密码)的API。我们认为公开的一个有用功能就是验证,例如查询给定用户名是否有效和可用。 在这种情况下,有哪些资源?应该使用哪些HTTP状态代码和/或标题? 首先,我GET /profile/validate将查询字符串参数作为参数并返回,204或者返回400有效值或无效值。但validate显然是动词而不是名词。
71 api  http  rest 

5
使用Django Rest Framework返回当前用户
我目前正在使用Django开发API。 但是,我想创建一个视图,该视图返回具有以下端点的当前User:/users/current/。 为此,我创建了一个列表视图,并过滤了发出请求的用户的查询集。可以,但是结果是列表,而不是单个对象。结合分页,与其他端点相比,结果看起来过于复杂且不一致。 我也尝试创建一个详细视图并过滤查询集,但是DRF抱怨我没有提供pk或slug。 你有什么主意吗?

3
这个Rails JSON身份验证API(使用Devise)是否安全?
我的Rails应用程序使用Devise进行身份验证。它有一个姐妹iOS应用程序,用户可以使用与该Web应用程序相同的凭据登录到iOS应用程序。所以我需要某种API进行身份验证。 这里有许多类似的问题指向本教程,但它似乎token_authenticatable已过时,因为此模块已从Devise中删除,并且某些行会引发错误。(我使用的是Devise 3.2.2。)我曾尝试根据该教程(和本教程)来推出自己的教程,但我对此并不百分百自信-我觉得可能有些东西被误解或错过。 首先,按照这个要点的建议,我authentication_token在users表中添加了text属性,以下内容添加到user.rb: before_save :ensure_authentication_token def ensure_authentication_token if authentication_token.blank? self.authentication_token = generate_authentication_token end end private def generate_authentication_token loop do token = Devise.friendly_token break token unless User.find_by(authentication_token: token) end end 然后,我有以下控制器: api_controller.rb class ApiController < ApplicationController respond_to :json skip_before_filter :authenticate_user! protected def user_params params[:user].permit(:email, :password, :password_confirmation) end end (请注意,我application_controller有一行before_filter :authenticate_user!。) …

1
REST API授权和身份验证(Web +移动)
我已经阅读了有关oAuth,Amazon REST API,HTTP Basic / Digest等的信息,但无法将其全部整合为“单个”。这可能是最接近的情况-为移动应用程序创建API-身份验证和授权 我想建立以API为中心的网站-服务。因此(一开始)我将在中心拥有一个API,而网站(PHP + MySQL)将通过cURL,Android和iPhone通过它们的网络接口进行连接。因此,有3个主要客户-3个API密钥。其他开发人员也可以通过API接口进行开发,他们将获得自己的API密钥。根据用户级别的状态,API操作将被接受/拒绝,如果我是管理员,则可以删除任何内容,等等,其他所有操作都只能操作其本地(帐户)数据。 首先,授权-我应该使用oAuth + xAuth还是我自己的某种实现(请参阅http://docs.amazonwebservices.com/AmazonCloudFront/latest/DeveloperGuide/RESTAuthentication.html?r=9197)?据我了解,Amazon服务用户是== API用户(具有API密钥)。在我的服务中,我需要将标准用户/帐户(在网站上注册的用户)和开发者帐户(应具有其API密钥)分开。 因此,我首先需要授权API密钥,然后验证用户本身。如果我使用亚马逊的方案检查开发人员的API密钥(授权他们的应用程序),那么我应该使用哪个sheme进行用户身份验证? 我读到有关通过api.example.org/auth(通过HTTPS,HTTP Basic)发布我的用户名和密码,然后在随后的每个请求中转发令牌的方式获得令牌的信息。如果同时在Android和网站上登录,如何管理令牌?如果我仅在第一个请求(传输用户名和密码时)仅使用SSL而在其他请求上仅使用HTTP时,中间人攻击怎么办?在此示例中,密码保护REST服务不是问题吗?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.