Questions tagged «api»

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

13
如何设置HttpClient请求的Content-Type标头?
我正在尝试根据我要调用的API 设置对象的Content-Type标头HttpClient。 我尝试设置Content-Type如下: using (var httpClient = new HttpClient()) { httpClient.BaseAddress = new Uri("http://example.com/"); httpClient.DefaultRequestHeaders.Add("Accept", "application/json"); httpClient.DefaultRequestHeaders.Add("Content-Type", "application/json"); // ... } 它允许我添加Accept标题,但是当我尝试添加Content-Type它时,抛出以下异常: 标头名称滥用。确保请求标HttpRequestMessage头与一起使用 ,响应标头与一起使用HttpResponseMessage,内容标头与HttpContent对象一起使用。 如何Content-Type在HttpClient请求中设置标题?
738 c#  asp.net  api  http  rest 

11
JWT(JSON Web令牌)自动延长有效期
我想对我们的新REST API实施基于JWT的身份验证。但是,由于在令牌中设置了有效期,是否可以自动延长有效期?我不希望用户在此期间正在使用该应用程序的情况下,每隔X分钟登录一次。那将是巨大的用户体验失败。 但是,延长有效期会创建一个新令牌(旧令牌在过期之前仍然有效)。在每个请求之后生成一个新令牌对我来说听起来很愚蠢。当多个令牌同时有效时,听起来像一个安全问题。当然,我可以使用黑名单来使旧的使用过的无效,但我需要存储令牌。JWT的好处之一是无需存储。 我发现Auth0如何解决它。它们不仅使用JWT令牌,而且还使用刷新令牌:https : //docs.auth0.com/refresh-token 但是同样,要实现此功能(不使用Auth0),我需要存储刷新令牌并保持其过期。那么,真正的好处是什么?为什么不只有一个令牌(而不是JWT)并在服务器上保留到期时间? 还有其他选择吗?使用JWT是否不适合这种情况?

16
什么是应用程序二进制接口(ABI)?
我从不清楚什么是ABI。请不要将我指向Wikipedia文章。如果我能理解的话,我就不会在这里发表如此冗长的文章。 这是我对不同接口的看法: 电视遥控器是用户和电视之间的接口。它是一个现有的实体,但是它本身是无用的(不提供任何功能)。电视机上实现了遥控器上每个按钮的所有功能。 接口:是该功能的functionality和之间的“现有实体”层 consumer。接口本身不执行任何操作。它只是调用后面的功能。 现在,取决于用户是谁,有不同类型的界面。 命令行界面(CLI)命令是现有的实体,使用者是用户,而功能却在后面。 functionality: 我的软件功能可以解决我们描述此界面的某些目的。 existing entities: 命令 consumer: 用户 图形用户界面(GUI)窗口,按钮等是现有的实体,而使用者又是用户,功能又在后面。 functionality: 我的软件功能解决了我们描述此接口时遇到的一些问题。 existing entities: 窗口,按钮等。 consumer: 用户 应用程序编程接口(API)函数(或更准确地说)(在基于接口的编程中)接口是现有的实体,此处的使用者是另一个程序,而不是用户,并且功能仍在该层后面。 functionality: 我的软件功能解决了我们描述此接口时遇到的一些问题。 existing entities: 函数,接口(函数数组)。 consumer: 另一个程序/应用程序。 应用程序二进制接口(ABI)这就是我的问题所在。 functionality: ??? existing entities: ??? consumer: ??? 我已经用不同的语言编写了软件,并提供了不同种类的界面(CLI,GUI和API),但是我不确定是否提供过任何ABI。 维基百科说: ABI涵盖了诸如 数据类型,大小和对齐方式; 调用约定,它控制如何传递函数的参数以及如何检索返回的值; 系统调用号以及应用程序应如何对操作系统进行系统调用; 其他ABI标准化细节,例如 C ++名称修改 异常传播,以及 相同平台上的编译器之间的调用约定,但不需要跨平台兼容性。 谁需要这些细节?请不要说操作系统。我知道汇编编程。我知道链接和加载的工作方式。我确切地知道里面发生了什么。 …

6
连字符,下划线或驼峰作为URI中的单词定界符?
我正在为Intranet应用程序设计基于HTTP的API。我意识到在宏伟的事物中这是一个很小的问题,但是:我应该使用连字符,下划线还是camelCase来分隔URI中的单词? 这是我最初的想法: 骆驼香烟盒 如果服务器不区分大小写,则可能出现问题 似乎在查询字符串键(相当广泛使用http://api.example.com?SEARCHQUERY = ...),而不是在其他URI部分 连字号 比其他替代品更美观 似乎在URI的路径部分中被广泛使用 在野外从未见过带连字符的查询字符串键 对于SEO 可能更好(这可能是神话) 下划线 编程语言可能更容易处理 几个流行的API(Facebook,Netflix,StackExchange等)在URI的所有部分都使用下划线。 对于所有内容,我都倾向于强调。大多数大型参与者都在使用它们,这一事实令人信服(请参阅https://stackoverflow.com/a/608458/360570)。
475 api  url  rest  uri  restful-url 

10
尝试从REST API获取数据时,请求的资源上没有“ Access-Control-Allow-Origin”标头
我正在尝试从HP Alm的REST API中获取一些数据。它与一个小的curl脚本一起使用时效果很好-我得到了数据。 现在使用JavaScript进行操作,获取和ES6(或多或少)似乎是一个更大的问题。我不断收到此错误消息: 提取API无法加载。对预检请求的响应未通过访问控制检查:在所请求的资源上不存在“ Access-Control-Allow-Origin”标头。因此,不允许访问源' http://127.0.0.1:3000 '。响应的HTTP状态代码为501。如果不透明的响应满足您的需求,请将请求的模式设置为“ no-cors”以在禁用CORS的情况下获取资源。 我了解这是因为我试图从本地主机中获取数据,并且解决方案应使用CORS。现在我以为我确实这样做了,但是以某种方式它要么忽略了我在标题中写的内容,要么是其他问题? 那么,是否存在实施问题?我做错了吗?我无法检查服务器日志。我真的有点卡在这里。 function performSignIn() { let headers = new Headers(); headers.append('Content-Type', 'application/json'); headers.append('Accept', 'application/json'); headers.append('Access-Control-Allow-Origin', 'http://localhost:3000'); headers.append('Access-Control-Allow-Credentials', 'true'); headers.append('GET', 'POST', 'OPTIONS'); headers.append('Authorization', 'Basic ' + base64.encode(username + ":" + password)); fetch(sign_in, { //mode: 'no-cors', credentials: 'include', method: 'POST', headers: headers }) …

7
如何设计RESTful搜索/过滤?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我目前正在用PHP设计和实现RESTful API。但是,我一直无法实现我的初始设计。 GET /users # list of users GET /user/1 # get user with id 1 POST /user # create new user PUT /user/1 # modify user with id 1 DELETE /user/1 # delete user with id 1 到目前为止,还算标准,对吗? 我的问题是第一个GET /users。我正在考虑在请求正文中发送参数以过滤列表。这是因为我希望能够指定复杂的过滤器而无需获取超长网址,例如: GET /users?parameter1=value1&parameter2=value2&parameter3=value3&parameter4=value4 相反,我想拥有类似的东西: GET /users # …
456 api  search  rest  filter 

12
Linux的本机GUI API是什么?
我希望这不会成为一个愚蠢的问题,但这始终是我一直想知道的事情。Windows(Win32 API)和OS X(Cocoa)都有自己的API,可以处理窗口,事件和其他OS内容。对于Linux的等效功能,我从未真正有明确的答案。 我听说有人说GTK +,但是GTK +是跨平台的,怎么会是本地的呢?
441 c++  c  linux  api  user-interface 

5
替代Google Finance API的方法
关闭。此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 5年前关闭。 我想使用Google Finance API来获取有关该公司的股票数据,但是自2011/26/05以来已弃用该API。 您如何使用免费API实时获取库存数据?

6
REST API最佳实践:如何接受参数值列表作为输入[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 2年前关闭。 我们正在启动一个新的REST API,我希望获得一些社区的最佳做法方面的意见,以帮助我们格式化输入参数: 现在,我们的API以JSON为中心(仅返回JSON)。关于是否要返回XML的争论是一个单独的问题。 由于我们的API输出是以JSON为中心的,因此我们一直走在一条以JSON中心为输入的路径上,我一直在想这可能对某些人来说很方便,但总的来说很奇怪。 例如,要获得一些产品详细信息,以便可以同时提取多个产品,我们现在拥有: http://our.api.com/Product?id=["101404","7267261"] 我们应该简化为: http://our.api.com/Product?id=101404,7267261 还是方便使用JSON输入?更痛苦吗? 我们可能要接受两种样式,但是这种灵活性是否会导致更多的混乱和头疼(可维护性,文档等)? 一个更复杂的情况是,当我们想提供更复杂的输入时。例如,如果我们想在搜索中允许多个过滤器: http://our.api.com/Search?term=pumas&filters={"productType":["Clothing","Bags"],"color":["Black","Red"]} 我们不一定要将过滤器类型(例如productType和color)作为请求名称,如下所示: http://our.api.com/Search?term=pumas&productType=["Clothing","Bags"]&color=["Black","Red"] 因为我们想将所有过滤器输入分组在一起。 最后,这真的重要吗?可能有太多的JSON实用程序,所以输入类型没什么大不了的。 我知道我们的JavaScript客户端对API进行AJAX调用可能会喜欢JSON输入,从而使他们的生活更轻松。
409 api  rest 


14
REST API最佳实践:在哪里放置参数?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 5年前关闭。 已锁定。该问题及其答案被锁定,因为该问题是题外话,但具有历史意义。它目前不接受新的答案或互动。 REST API至少可以通过两种方式具有参数: 作为网址路径的一部分(即/api/resource/parametervalue ) 作为查询参数(即/api/resource?parameter=value ) 最佳做法是什么?是否有使用1和何时使用2的一般准则? 真实示例:Twitter使用查询参数指定间隔。(http://api.twitter.com/1/statuses/home_timeline.json?since_id=12345&max_id=54321) 将这些参数放在URL路径中是否被认为是更好的设计?
348 api  rest  url 

15
如何使用C#调用REST api?
这是我到目前为止的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System; using System.Net.Http; using System.Web; using System.Net; using System.IO; namespace ConsoleProgram { public class Class1 { private const string URL = "https://sub.domain.com/objects.json?api_key=123"; private const string DATA = @"{""object"":{""name"":""Name""}}"; static void Main(string[] args) { Class1.CreateObject(); } private static void CreateObject() { …
335 c#  api  rest 

9
SPI和API之间的区别?
服务提供商接口(SPI)和应用程序编程接口(API)有什么区别? 更具体地说,对于Java库,是什么使它们成为API和/或SPI?
317 java  api 

12
在PHP中调用REST API
我们的客户给了我一个REST API,我需要对其进行PHP调用。但事实上,API随附的文档非常有限,所以我真的不知道如何调用该服务。 我尝试过使用Google,但唯一出现的是已经过期的Yahoo! 有关如何调用服务的教程。没有提及标题或任何深度信息。 是否有关于如何调用REST API的任何体面的信息,或有关它的一些文档?因为即使在W3schools上,它们也仅描述SOAP方法。在PHP中使用rest API有哪些不同的选择?
317 php  web-services  api  rest 

14
JSONDecodeError:预期值:第1行第1列(字符0)
Expecting value: line 1 column 1 (char 0)尝试解码JSON 时出现错误。 我用于API调用的URL在浏览器中可以正常工作,但是通过curl请求完成时会出现此错误。以下是我用于curl请求的代码。 错误发生在 return simplejson.loads(response_json) response_json = self.web_fetch(url) response_json = response_json.decode('utf-8') return json.loads(response_json) def web_fetch(self, url): buffer = StringIO() curl = pycurl.Curl() curl.setopt(curl.URL, url) curl.setopt(curl.TIMEOUT, self.timeout) curl.setopt(curl.WRITEFUNCTION, buffer.write) curl.perform() curl.close() response = buffer.getvalue().strip() return response 完整回溯: 追溯: File "/Users/nab/Desktop/myenv2/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 111. …
258 python  json  api  curl 

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.