Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/473.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 带有嵌入式API密钥的静态API文档_Javascript_Jquery_Ruby_Ajax - Fatal编程技术网

Javascript 带有嵌入式API密钥的静态API文档

Javascript 带有嵌入式API密钥的静态API文档,javascript,jquery,ruby,ajax,Javascript,Jquery,Ruby,Ajax,我正在为一个项目建立API文档,想知道什么是最适合这项工作的工具 该站点是完全静态的,除了API密钥之外,我想根据用户的不同将其包含在代码示例中(如果用户登录,他们将获得自己的API密钥) 如何在维护静态站点(我使用的是静态站点生成器)的同时实现这一点。我建议您在所有页面上包含小型ajax脚本,它将在整个页面中执行搜索和替换 在静态页面上,您将看到如下代码: <!-- EMPTY SPAN IN PAGE TEMPLATE --> <span class='api-key'&g

我正在为一个项目建立API文档,想知道什么是最适合这项工作的工具

该站点是完全静态的,除了API密钥之外,我想根据用户的不同将其包含在代码示例中(如果用户登录,他们将获得自己的API密钥)


如何在维护静态站点(我使用的是静态站点生成器)的同时实现这一点。

我建议您在所有页面上包含小型ajax脚本,它将在整个页面中执行搜索和替换

在静态页面上,您将看到如下代码:

<!-- EMPTY SPAN IN PAGE TEMPLATE -->
<span class='api-key'></span>

希望有帮助。

谢谢,我不知道有哪种API公开了用于生成API密钥的端点。你知道吗?在任何情况下,我认为我都需要在请求中从客户端传递某种cookie。。这是怎么回事?你写了“如果用户登录,他们会获得自己的API密钥”,我认为这意味着你已经实现了某种授权,对吗?此授权代码可能会为登录用户公开返回
api密钥的简单界面,为来宾公开返回null的简单界面。基于会话的授权已完成,客户端浏览器上有一个域cookie。查看静态文档页面不必经过身份验证。它能辨别的唯一方法是通过饼干。当您执行
$.get
时,它是否会传递域cookie?如果没有,它如何设置为自动将(加密的)cookie传递给服务器进行评估——然后它将为用户返回Api密钥?cookie是由Rails生成的,API也是Rails。对服务器的每个请求都会传递cookie,包括图像和资源检索。我认为您不需要从cookie中提取会话(此外,在客户端可能不可能)。我将实现1个服务器处理程序(例如,在
/api/get/key
或您喜欢的URI处)哪个将负责身份验证,返回密钥或存根。API密钥来自何处?您是否有可用于检索API密钥的后端和API?您是否可以对该后端进行身份验证?@lolmaus AndreyMikhaylov可以从API本身检索它们(通过下面答案中建议的公共端点)。目前,我正在验证会话后从数据库中检索API密钥(API和网站共享相同的代码库)Middleman是一个静态站点生成器,它不会帮助您访问API。我建议您针对
javascript
jquery
等标记提交问题,而不是
Middleman
。您必须弄清楚如何使用JS根据API对站点访问者进行身份验证,然后从API中检索密钥,然后将其插入到页面。@lolmaus AndreyMikhaylov我同意,已编辑。那么…用户如何根据API进行身份验证以确定是否允许他查看密钥?
$(document).ready(function () { 
  $.get( "/api/key", function( data ) { /* supply credentials if needed */
    $('.api-key').html( data ); 
  }
});