zoukankan      html  css  js  c++  java
  • API & Web API

    The follow content refer refers to:

    • Baidu Baike                  : https://baike.baidu.com/item/api/10154
    • ZHihu - Enthusiasm      : https://www.zhihu.com/question/21430743/answer/456199910

    • Web API 强势入门指南 : http://www.cnblogs.com/guyun/p/4589115.html


     

    API . web(应用程序编程接口.web)

    Define:

      API(Application Programming Interface,应用程序编程接口)是一些预先定义的函数,目的是提供应用程序与开发人员基于某软件或硬件得以访问一组例程的能力,而又无需访问源码,或理解内部工作机制的细节。

    Kind:

    • Windows API
    • Linux API

    Open platform:

      开放是目前的发展趋势,越来越多的产品走向开放。目前的网站不能靠限制用户离开来留住用户,开放的架构反而更增加了用户的粘性。在Web 2.0的浪潮到来之前,开放的API 甚至源代码主要体现在桌面应用上,而现在越来越多的Web应用面向开发者开放了API。

    Explain: 

      通俗来讲,比如书当你喝水的时候,你只需要打开水龙头,拿一个杯子去接就可以了。你根本不用关心水龙头的水是从哪里来的,经历过怎样的净化,加多少压强等等细节,你只需要学会如何去“调用水龙头”也就是学会“使用水龙头”这一简单的动作,就可以完成你想要完成的功能——喝水,你不需要学习更加专业的知识(给排水专业学的)。
      再比如,你要用电给手机充电。你需要自己去找发电机去发电吗?你需要自己研究一个变压器调节合适电压吗?你需要自己去布一根传输线吗?你需要自己去发明一种插头吗?你需要自己去规范一种充电标准吗?等等复杂而又专业的问题,统统都已经完成了。你只需要学会如何“使用插头”,也就是“把插头插进插槽”这一简单动作,就可以实现用电了。可以这么说,你学会了这一简单动作,我可以说你已经学会了如何去使用 EUI(electric using interface)用电接口,去完成你想要完成的功能了。
     

     The Reason why we use Web API and where we use:

      Web API最重要的是可以构建面向各种客户端的服务。另外与WCF REST Service不同在于,Web API利用Http协议的各个方面来表达服务(例如 URI/request response header/caching/versioning/content format),因此就省掉很多配置。

      

      当遇到以下这些情况的时候,就可以考虑使用Web API了。

    • 需要Web Service但是不需要SOAP
    • 需要在已有的WCF服务基础上建立non-soap-based http服务
    • 只想发布一些简单的Http服务,不想使用相对复杂的WCF配置
    • 发布的服务可能会被带宽受限的设备访问
    • 希望使用开源框架,关键时候可以自己调试或者自定义一下框架

    Function:

    1. 支持基于Http verb (GET, POST, PUT, DELETE)的CRUD (create, retrieve, update, delete)操作通过不同的http动作表达不同的含义,这样就不需要暴露多个API来支持这些基本操作。
    2. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。
    3. 原生支持OData。
    4. 支持Self-host或者IIS host。
    5.  支持大多数MVC功能,例如Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。
    6. 请求的回复通过Http Status Code表达不同含义,并且客户端可以通过Accept header来与服务器协商格式,例如你希望服务器返回JSON格式还是XML格式。

    Popular API:

      高德地图JS API : https://lbs.amap.com/api/javascript-api/summary

       

  • 相关阅读:
    二分法检索数组
    Linux安装CDH
    myeclipse操作hdfs
    Linux安装hbase
    Linux安装zookeeper
    Linux安装msql
    fluem全分布环境搭建
    bash: jps: 未找到命令...
    自动化项目Jenkins持续集成
    linux卸载mysql====安装新的虚拟机 自带的基本都要卸载!? mysql tomcat java Python可以不用卸载
  • 原文地址:https://www.cnblogs.com/chenzhihong294/p/10015021.html
Copyright © 2011-2022 走看看