精华内容
下载资源
问答
  • URL-API-源码

    2021-03-08 03:50:35
    API REST URL的文档 母表 介绍 L'API Fournitt Service decréerdes URLs竞赛。 API的基本网址: : API初版网址Tous les appels,以及“ d'siréedésiréelaquelle s'ajoute le chemin vers l'action”。 范例...
  • 图片url配置 项目开发中,图片地址有可能是托管在阿里云的oos或者七牛云或者其他平台,又或者存储在自已部署的环境上面,那么返回给前端图片地址的时候就要给出全路径,后端需要自己配置 获取器用法 get...
    关联模型

    关联模型可以分为主模型,关联模型,以一个模型为参照的模型为主模型,与之对应的模型称为关联模型。
    如果在含有外键的表或模型中编写模型关联则使用belongsTo方法,如果在没有外键的表或模型中编写模型关联则使用hasOne方法

    一对一:hasOne,belongsTo 参数列表:关联模型,关联外检,主键
    一对多:hasMany,belongsTo
    多对多:belongsToMany,belongsToMany 参数列表:关联模型名,中间表名,外键名,当前模型关联键名
    
    关联查询方法

    普通关联查询 with('items'),嵌套关联查询with(['items','items.img'])

    隐藏字段

    隐藏模型字段的原因主要有两个:一是出于安全性的考虑,有些字段是不应该被返回给客户端的;二是为了保持返回的的json格式的数据比较简洁

    图片url配置

    项目开发中,图片地址有可能是托管在阿里云的oos或者七牛云或者其他平台,又或者存储在自已部署的环境上面,那么返回给前端图片地址的时候就要给出全路径,后端需要自己配置

    获取器用法

    get + 字段名(驼峰式) + Attr(value,value,data) valuevalue表示当前字段值,data表示当前一行记录

    定义API版本号

    开闭原则:对扩展是开放的,对修改是封闭的,如果你要修改一个代码,最好就是通过扩展的形式来修改
    假设我们目前有1.0版本的,由于项目变更我们需要改成2.0版本的,如果还在原来的方法里作判断来改变版本,就违反了我们修改是封闭的原则,破坏了以前的代码,我们无法保证在引入2.0版本之后1.0版本不会对其造成影响,凡是修改代码,都会有影响以前功能正常调用的风险,所以尽量不要去修改代码,而是在合适的地方添加新的扩展。同时,像上面的判断就使代码变得繁琐,达不到我们想要的简洁效果,而且我们这么多判断只是为了解决一个业务而使用了不同的解决方式罢了,所以我们更应该把代码分离出来,每一个版本做一个单独的代码模块
    为什么需要版本号?因为当我们的产品有新版本的时候,一些老的版本的接口我们可能就不再支持使用了,可以删除掉我们以前写的接口的代码,然后写新的代码,但是互联网产品一定要考虑对老版本的兼容性问题,有点用户是不会升级到你的新版本,这时候需要多版本以及版本号的支持,只有分版之后,才能对新老客户端都支持,在开始规划产品的时候就要知道应该向上兼容几个版本,而不是完全把以前的版本都给兼容了,没有必要,而且成本也高

    展开全文
  • $httpUrl = 'https://clientdomain.csod.com/services/api/sts/session?userName=clientuserid&alias=jk01'; date_default_timezone_set('UTC'); $date = 'x-csod-date:'.date('Y-m-d').'T'.date('H:i:s').'...
  • 也就是说URL只能使用字母数字[0-9a-zA-Z]、一些特殊符号$-_.+!*’()[不包括双引号]、以及某些保留字(空格转换为+),才可以不经过编码直接用于URL RFC文档的建议: 这意味着 如果URL中有汉字或者不在ASCII字符...

    在因特网上传送URL,只能采用ASCII字符集,即是常说的get请求只能使用ASCII 字符

    也就是说URL只能使用字母和数字[0-9a-zA-Z]、一些特殊符号$-_.+!*’()[不包括双引号]、以及某些保留字(空格转换为+),才可以不经过编码直接用于URL


    RFC文档的建议:

    这意味着 如果URL中有汉字或者不在ASCII字符集中的特殊符号,就必须编码后才能使用。
    对于非ASCII字符RFC文档建议使用utf-8对其进行编码得到相应的字节,然后对每个字节执行百分号编码
    在这里插入图片描述
    可以看到a!@$%%5E&*() 都可以在ASCII对照表中查得到,而¥符号在ASCII对照表中是没有的,那么就会进行转换,首先会在UTF-8字符集中找到¥符号的16进制编码,经过Url编码之后得到%EF%BF%A5
    在这里插入图片描述

    url编码混乱的原因:

    麻烦的是,建议始终都是建议,没有统一的一套标准,难免有些人会不听取建议。

    标准的国际组织并没有规定具体的编码方法,而是交给应用程序(浏览器)自己决定。 这导致"URL编码"成为了一个混乱的领域不同的浏览器对于非ASCII字符可能采用不同的转换方式,有的听取建议按照utf-8处理url上非ASCII字符,有的则使用GB2312编码。


    如何做到统一:

    不同的浏览器将导致完全不同的编码结果。如果程序员要把每一种结果都考虑进去,是不是太恐怖了?有没有办法,能够保证客户端只用一种编码方法向服务器发出请求?

    回答是有的,就是使用Javascript先对URL编码,然后再向服务器提交,不要给浏览器插手的机会。因为Javascript的输出总是一致的,所以就保证了服务器得到的数据是格式统一的。


    实现统一的方式:

    Javascript中提供了3对函数用来对Url编码以得到合法的Url
    它们分别是:

    • escape / unescape
    • encodeURI / decodeURI
    • encodeURIComponent / decodeURIComponent

    由于解码和编码的过程是可逆的,因此这里只解释编码的过程。

    这三个编码的函数——escape,encodeURI,encodeURIComponent——都是用于将不安全不合法的Url字符转换为合法的Url字符表示,它们有以下几个不同点。

    1. 安全字符不同:

    下面列出了这三个函数的安全字符(即函数不会对这些字符进行编码)

    escape(69个):    */@+-._0-9a-zA-Z
    encodeURI(82个):    !#$&'()*+,/:;=?@-._~0-9a-zA-Z
    encodeURIComponent(71个):    !'()*-._~0-9a-zA-Z
    
    1. 对Unicode字符的编码方式不同:

    这三个函数对于ASCII字符的编码方式相同,均是使用百分号+两位十六进制字符来表示。但是对于Unicode字符,escape的编码方式是%uxxxx,其中的xxxx是用来表示unicode字符的4位十六进制字符。这种方式已经被W3C废弃了。但是在ECMA-262标准中仍然保留着escape的这种编码语法。encodeURI和encodeURIComponent则使用UTF-8对非ASCII字符进行编码,然后再进行百分号编码。这是RFC推荐的。因此建议尽可能的使用这两个函数替代escape进行编码。

    1. 适用场合不同:

    encodeURI被用作对一个完整的URI进行编码,而encodeURIComponent被用作对URI的一个组件进行编码。从上面提到的安全字符范围表格来看,我们会发现,encodeURIComponent编码的字符范围要比encodeURI的大


    encodeURI():

    • encodeURI()是Javascript中真正用来对URL编码的函数

    着眼于对整个URL进行编码,因此除了常见的符号以外,对其他一些在网址中有特殊含义的符号"; / ? : @ & = + $ , #",也不进行编码。编码后,它输出符号的utf-8形式,并且在每个字节前加上%。


    encodeURIComponent()

    • 它用于对URL的组成部分进行个别编码,而不用于对整个URL进行编码。

    因此,"; / ? : @ & = + $ , #",这些在encodeURI()中不被编码的符号,在encodeURIComponent()中统统会被编码。至于具体的编码方法,两者是一样。


    encodeURIComponent() 和 encodeURI() 的区别演示:

    console.log(encodeURI("?name=zhangsan&age=21"))
    console.log(encodeURIComponent("?name=zhangsan&age=21")) 
    

    在这里插入图片描述

    总结:

    开发中大部分情况下使用encodeURI / decodeURI完全可以了

    展开全文
  • 网址缩短器 简单的NodeJ REST Api和React前端可缩短URL
  • 基于URL生成API Key方法

    千次阅读 2016-12-14 18:20:44
    今天师兄让我设计地图API Key的实现方法,看了一下google、百度地图的API,大概整理一下流程,因为在网上很难查到相关的资料,菜鸟拿出来大家分享一下。 1.  实现的前提 l  API Key与用户的帐户关联。 ² ...
    
    今天师兄让我设计地图API Key的实现方法,看了一下google、百度地图的API,大概整理一下流程,因为在网上很难查到相关的资料,菜鸟拿出来和大家分享一下。

    1.         实现的前提

    l         API Key与用户的帐户关联。

    ²        为了获取API调用者的信息,要确保API调用者在拥有了新浪账户之后才能够申请API Key

    l         API Key要映射到一个明确的域名与目录,这也就是说,如果一个API调用者想访问API,它要具备两个条件:

    ²        在进行服务请求的时候,API调用者要指定一个正确的API Key做为请求参数

    ²        调用者要在与API Key匹配的域名与目录中,假设这个Key是通过URLhttp://map.sina.com.cn/samples(包括了域名map.sina.com.cn与目录samples)来申请的。哪么,所有的来自这个URLAPI申请都能被通过,而来自其它URL的申请就不能用这个Key

    2.         实现方法

    要实现这个技术,首先你要生成并分发这些API Key,之后是你要验证通过这些Key来进行的API调用请求,下面我们来具体分析这两个模型:

    l         加密模式

    ²        通过一个Hash函数来生成一个API Key并分发出去,这里可以采用phpMhash实现,这个方法是一个单向的方法,只能通过一些数据来生成Key,而不能通过这个Key再还原出来这个数据。在这里,输入的数据就是URL

    ²        生成key时加一个TOKEN,这样更加不好逆转。

    l         验证模型

    ²        根据一个主机的调用请求HTTP referer+TOKENHTTP referer中含有发出请求的源URL)信息再生成一个Key,然后比较这个Key与用户有请求时写到参数中的哪个Key,如果验证匹配,哪么这个主机的请求将被响应。

     


    基于URL生成API <wbr>Key方法 

     

    3.         局限

    API Key来控制访问有一些局限,不过它能去除大量的非法API调用。

    l         HTTP referer很容易被伪造

    l         虽然从key中很难还原出原来数据(也就是URL),但也不是不可能的。就算我们用了MD5算法,并在Key中加入了TOKEN来增加还原的难度。

    4.         优势

    通过API KeyURL之间对应关系来限制你的API只能由某个特定的域名也目录来调用,也就是说,你可以指定哪个主机可以访问你的API。除此之外,这个技术还可以帮助你确定谁在用你的API,这样你就可以统计,在某段时间内,你的服务被调用多少次。

    5.         数据模型

    l         存在的问题?

    ²        是否加上限制机制?即,针对调用者的使用权限加以控制,在验证API Key的同时,验证KEY值是否过期,是否被强制锁定,是否需要续费等,这样的优势是对使用者的行为时可控的,劣势是每次验证都要访问数据库,降低验证的效率,增强数据库的压力。

    展开全文
  • 理解HTML HTTP API 和URL

    2020-05-06 11:07:15
    理解HTML HTTP URL和API 学习与网络编程相关或是python爬虫的时候,涉及到理解与互联网相关的一些概念,对这些概念理解的深度,最终决定了相关领域所能达到的高度。 HTML HTM(Hyper Text Marked Language),即超...

    理解HTML HTTP URL和API

    学习与网络编程相关或是python爬虫的时候,涉及到理解与互联网相关的一些概念,对这些概念理解的深度,最终决定了相关领域所能达到的高度。

    HTML

    HTM(Hyper Text Marked Language),即超文本标记语言。
    比较通俗的定义:网页文件本身是一种文本文件,通过在文本文件中添加标记符,可以告诉浏览器如何显示其中的内容(如:文字如何处理,画面如何安排,图片如何显示等)。浏览器按顺序阅读网页文件,然后根据标记符解释和显示其标记的内容,对书写出错的标记将不指出其错误,且不停止其解释执行过程,编制者只能通过显示效果来分析出错原因和出错部位。但需要注意的是,对于不同的浏览器,对同一标记符可能会有不完全相同的解释,因而可能会有不同的显示效果。

    举个例子。在word文档里,我们可以编辑文字,图片,表格等等,可以对字体加粗、下划线。而在浏览器上我们如果想让编辑类似这样的效果该如何实现呢?就需要用到HTML语言。

    在word里我们是通过自己设置字体,排版等实现对文字的排版,而在浏览器上,我们根据HTML语言的规则,“设置”浏览器将要以什么样的形式呈现我们的内容。

    HTTP

    HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。
    HTTP是一个基于“请求与响应”模式的、无状态的应用层协议。
    其中,‘请求’是指用户想服务器发起的资源请求,‘响应’是指服务器对用户的请求作出的响应,‘无状态’是指用户与服务器之间的这种连接是一次性的,服务器不保留与客户交易时的任何状态,第二次连接与第一次连接没有任何关系,‘应用层’是指HTTP协议位于应用层上,也就是架构在TCP协议上。

    简单来说,网络上的各种资源平时都存储在服务器(server)上,如果我们想要浏览网页,或者下载文件(获取资源–requset),是需要通过因特网向服务器申请,申请过程中的“申请表”就是HTTP协议,服务器根据我们的“申请表”决定要不要将资源返回给我们(响应responce)。

    在这里插入图片描述
    这张图很好的揭示了HTTP协议的工作流程。

    我们对HTTP协议的具体工作过程不做过多的阐述,忽略掉建立TCP连接这一步,重点来看看请求和响应的文件内容。

    http请求

    先看看申请表——HTTP请求中都需要哪些内容呢?
    http请求一般由三部分构成:<请求行><请求头><请求体>
    (1)请求行:
    GET http://localhost:2172/api/Default/GetUserInfo?UserName=Alan_beijing HTTP1.1

    HTTP协议对资源的操作方法(method)很多种,主要的方法如下所示:
    在这里插入图片描述
    通过url(资源的唯一标识符)和这些方法,HTTP协议可以对服务器上的这些资源进行操作,其中(GET、HEAD)是获取资源,(PUT POST PATCH DELETE)是对资源进行修改和删除。

    图解如下:
    在这里插入图片描述

    (2)请求头:header

    Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8
    Accept-Encoding:gzip, deflate, br
    Accept-Language:zh-CN,zh;q=0.9
    Cache-Control:max-age=0
    Connection:keep-alive
    Host:localhost:2172
    Upgrade-Insecure-Requests:1
    User-Agent:Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.75 Safari/537.36
    

    看看请求头里都填写了哪些内容?
    在这里插入图片描述
    注意:header的格式一般是JSON格式。

    (3)请求体:Request-Body
    由于本示例使用的是Get请求,Get方法没有请求体。

    http响应

    再来看看服务器发给我们的“回执”包括哪些内容?
    http响应一般由三部分构成:<状态行><响应头><响应体>;

    状态行

    由三个部分构成:<协议及其版本><状态码><描述>,

    HTTP/1.1 200 OK;
    

    在这里插入图片描述
    简单理解,当状态码是200,表示请求成果,其他都是请求失败。

    响应头

    关于响应头,与请求头原理差不多,这里就不讲解了。

    Cache-Control:no-cache
    Content-Length:123
    Content-Type:application/xml; charset=utf-8
    Date:Sat, 27 Jan 2018 09:54:22 GMT
    Expires:-1
    Pragma:no-cache
    Server:Microsoft-IIS/10.0
    X-AspNet-Version:4.0.30319
    X-Powered-By:ASP.NET
    X-SourceFiles:=?UTF-8?B?QzpcVXNlcnNcQWxhbl9iZWlqaW5nXHNvdXJjZVxyZXBvc1xIdHRwRGVtb1xIdHRwRGVtb1xhcGlcRGVmYXVsdFxHZXRVc2VySW5mbw==?=
    

    URL

    在WWW上,每一信息资源都有统一的且在网上唯一的地址,该地址就叫URL(Uniform Resource Locator,统一资源定位符),它是WWW的统一资源定位标志,就是指网络地址。

    API

    应用程序接口(API)是基于编程语言构建的结构,使开发人员更容易地创建复杂的功能。它们抽象了复杂的代码,并提供一些简单的接口规则直接使用。

    简单的说,就是程序员A写了一个函数,程序员B想要直接使用而不再重写,就可以用程序员A提供的接口(API)来访问这个函数。

    the website is the api……
    比如说爬虫技术,就是将网站当做是api接口,进而获取数据。

    展开全文
  • 我有一个使用Spring SecurityOAuth2在Spring Boot中编写的REST API.资源以这种方式保护:@Overridepublic void configure(HttpSecurity http) throws Exception {http.authorizeRequests().antMatchers("/api/v1/...
  • Opera 内置的拦截功能已经帮助用户很久了,随着 URL 过滤 API 的开放,开发者能开发出能更方便的拦截控制拦截的扩展。接下来我们来看看 URL 过滤 API 是如何工作的,什么情况下它是有用的,教大家如何使用它。-...
  • puppeteer apiWe will continue using Node.js and puppeteer which is a node ... As we saw in our last article, Puppeteer is a Node library developed by Google and provides a high-level API for deve...
  • 一、先快速了解这两个API干嘛用的 ...实际上,现在,浏览器已经有了内置的API接口可以对URL进行处理,这个API就是URLSearchParams()以及URL()。 例如获取s的查询参数值,可以直接下面这样: new URL('https://www.
  • 在OpenAPI的术语中,路径是API公开的端点(例如:/...路径API的路径操作在API规范的全局paths分段中进行定义。paths: /ping: ... /users: ... /users/{id}: ...所有的路径都是API服务器URL的相对路径。完整的请求U...
  • 使用java原生的URL接口去访问远程的API,并对返回的结果转成json对象然后获取想要的信息:url: 远程API的访问路径(Http://192.168.1.11/8080/springdemo)param:API需要的参数(name=jack&amp;age=12) public ...
  • nodejs APIURL

    2015-10-12 22:26:12
    nodejs APIURL:资源定位该模块用于url字符串字段分解解析; 返回的是对象,该对象有一些字段,比如协议,主机名,路径名等字段,如果输入的url字符串中有就有。URL Parsing protocol:使用的协议,http https ftp ...
  • url网址解析模块  url.parse urlurl.parse()方法可以将一个URL解析成一个对象 const url = require('url'); url.parse("")将url转化为对象....... url.parse("http://www.imooc.com/video/6710",true)....
  • APIURL规划建议

    千次阅读 2017-06-09 14:53:01
    由于之前的项目经验,一直使用openstack阿里云的一些api。所以在API中的url规划,有那么一点点的认识。现在分享一下一些个人的想法吧。 openstack:遵循了开源界中的api命名规则,请求的方式有常用的htt
  • 单击此链接签出此使用Node.jsexpressjs构建的URL缩短程序API。 (此部署的链接较旧) 安装 先决条件 节点 社区服务器。 本地设置 从项目根目录运行npm install 。 启动mongoDB。 从项目根目录npm start运行npm ...
  • 微博API汇总及 mid和url的转换算法

    千次阅读 2020-02-10 20:28:56
    微博API 汇总 1. 搜索 m端 [GET] https://m.weibo.cn/api/container/getIndex?containerid=100103type%3D1%26q%3D关键词&page_type=searchall&page=2 weibo.cn(简版) [POST]高级搜索(须登录) ...
  • <p>I want to pass apikey and url instead of username and password, to connect watson assistant with my webpage. <pre><code>// Encode json data $json = json_encode($data, JSON_UNESCAPED_UNICODE); /...
  • 微信公众号开发者设置里的URL,现在采用WebAPI的方式,结果一直报“未能正确设置Token”的错误,采用HandlerMVC的方式倒是可以。 解决步骤一,添加服务器IP到白名单。 解决步骤二,确保了代码方式没有问题。...
  • return_url notify_url 的区别及其操作以及常见错误提示 (2010-12-18 11:52:36) 标签: 错误信息 支付宝 提示 总金额 参数 杂谈 分类: 支付宝-淘宝api
  • path: path模块是专门用来解析node的文件夹的文件的路径...node的常用API: 1.path.join();是拼接路径的,一般配合node的全局变量__dirname使用得到一个安全的路径 console.log(path.join('./a', '/b')); //a\b /
  • Chrome查看API接口URL

    千次阅读 2020-01-30 20:43:03
    在一些需要工具等应用可能会应用到火车票信息的查询,但是又不知去哪里找即免费又不限制次数的Api接口,呵呵,今天我简单给你介绍一些Api接口的抓取,不要激动,最终还是希望可以帮助到你。对于有web开发经验的,可...
  • Docker镜像的依赖关系是MySQLGolang。 测验 我没有机会编写所有我想保持在4小时标记附近的测试。 我并没有以一种更加惯用的方式来对待它。 当我开始研究它时,我意识到我最终将其设置为更多的端到端测试,而不是...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,893
精华内容 4,357
关键字:

url和api