笔记《细说API – 重新认识RESTful》

阅读“细说API – 重新认识RESTful”的笔记。

原文:https://insights.thoughtworks.cn/api-restful/

85

API在概念上和语言无关,理论上具有网络操作能力的所有编程语言都可以提供API服务。Java、PHP、Node甚至C都可以实现web API,都是通过响应HTTP请求并构造HTTP包来完成的,但是内部实现原理不同。

API在概念上和JSON和XML等媒体类型无关,JSON和XML只是一种传输或媒体格式,便于计算机解析和读取数据,因此都有一个共同特点就是具有几个基本数据类型,同时提供了嵌套和列表的数据表达方式。

API设计的目的是为了让程序可读,应当遵从简单、易用、无状态等特性,这也是为什么Restful风格流行的原因。

Read More

判断元素是否在数组内的几种方法对比

数组是很常用的一个数据结构,而且经常需要判断某个元素是否在数组中,这在PHP中有很多种方法,有:

  • foreach循环遍历数据
  • in_array()
  • array_search()
  • isset()
  • array_key_exists()

还有其他方法,这里就不说了。我们在网上搜索相关问题基本都是清一色的教我们如何使用in_array()函数,好像PHP中判断数组包含某个元素只有这一种方式似的,这次本文就来分析下除foreach外其他四种方式的执行效率。

Read More

再次认识CSS中的伪类

CSS中的伪类真是个神奇的东西,有时要实现某些布局的时候菜鸟都是divdiv,实在不行上flex,而高手一般都是用最少的元素来实现效果,比如巧妙的运用伪类来达到目的的同时减少元素节点,代码清爽了很多不用再写一坨div

这不,最近学习了几招伪类的使用,特此记录下。

Read More

How to fix ReferenceError primordials is not defined error

When use gulp in an old project, It outputs an error:

1
2
3
4
5
6
fs.js:45
} = primordials;
^

ReferenceError: primordials is not defined
// ...

And how to fix this error?

It occurs when use gulp 3.x with node upper than 12.x,because gulp 3.x depends on graceful-fs@^3.0.0 which patches Node’s fs module and that patch worked well before node v12.

Solutions

There are some solutions:

  1. upgarde gulp
  2. downgrade node
  3. to lock graceful-fs to version 4.2.2

For me, i do not want to re-write and re-config my project toolchain, and i also cannot change node version. So lock the gracefull-fs is good for me. The concrete solution here:

  1. create publishable lockfile npm-shrinkwrap.json
  2. edit the npm-shrinkwrap.json:
1
2
3
4
5
6
7
{
"dependencies": {
"graceful-fs": {
"version": "4.2.2"
}
}
}
  1. re-run npm install

Now, it should be working just fine. Enjoy it!