首页 > 其他分享 >API概念

API概念

时间:2023-04-10 16:08:42浏览次数:45  
标签:Web 实现 子类 接口 概念 API 抽象类

API概念_API

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

抽象类与普通类相比  约定了子类实现要求  单继承局限

因此,提出了接口

在以后的开发设计原则,接口优先

1. 接口的基本概念

接口是抽象方法和全局常量的集合,在 java 中可以使用 interface 关键字定义

interface IMessage  (在开发中接口名称前面需要加一个 I)

子类需要用 implements 关键字来实现接口,同时一个子类可以实现多个接口,可以利用接口实现多继承的概念。

class Message implements IMessage,INews{}

一个子类实现了多个接口,对于接口的子类不是抽象类,必须覆写接口中的全部方法。

当一个子类继承了多个接口之后,接口对象通过子类进行实例化,那么多个父接口之间是可以互相转换的,但是是通过子类转换的,实例化的时候要注意 new 后面的实例化,不要盯着名称看。

2. 接口的使用限制

接口里面只允许存在 public 权限;

接口中只是抽象方法和全局常量;

在编写的接口时候,开发原则,接口中只提供抽象方法,很少会在接口中看见全局常量,因此接口的方法 public 不会省略,但是 abstract 会省略;

一个子类先使用 extends 继承,再使用 implements 实现接口;

定义抽象类的时候会在抽象类的名称表现出来;

一个抽象类可以使用 implements 实现多个接口,但是接口不能继承抽象类;

一个接口可以使用 inplements 实现多个父接口;

接口可以定义一系列内部结构,包括:内部普通类、内部抽象类、内部接口,使用 static 定义的内部接口相当于外部接口;

3. 使用接口定义标准

使用接口和对象对象多态性的结合,对于参数的统一更加明确。

接口是设计在类之上的设计抽象。

正常的开发先设计接口,再设计类。

4. 接口工厂设计模式(重点)

java 实现可移植性的关键是 JVM,也就是说所有的程序是在 JVM 上执行,而不同的操作系统中有匹配的 JVM,相当于:

程序 --JVM-- 操作系统。

new 是整个开发过程中最大的耦合元凶,在开发之中解耦合的关键,需要引入一个第三方。

总结:主方法没有变化就实现子类的变更,就是工厂模式;

编写的接口,想取得接口的实例化对象,写工厂类。

5. 接口代理设计模式(Proxy)

 代理严格来讲就是两个子类共同实现一个接口,一个子类负责真实的业务实现,另一个子类完成辅助业务的主题的操作。

本质:所有真实的业务操作,都会有与之辅助的功能类共同完成。

 

WeBAPI

    Web Api,网络应用程序接口。它包含了广泛的功能,网络应用通过 API 接口,可以实现存储服务、消息服务、计算服务的能力,利用这些能力可以进行开发出强大功能的 web 应用。简单来说,就是一个接口,比如说,我们要做前后端分离的项目,前端和后端通过 url 连接,但是我们如何知道后端的数据是否通了,返回的数据是否正确,于是我们通过这个接口知道。

为什么使用 web API

   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 配置
  • 发布的服务可能会被带宽受限的设备访问
  • 希望使用开源框架,关键时候可以自己调试或者自定义一下框架

Web API 的主要功能:

1. 支持基于 Http verb (GET, POST, PUT, DELETE) 的 CRUD (create, retrieve, update, delete) 操作

    通过不同的 http 动作表达不同的含义,这样就不需要暴露多个 API 来支持这些基本操作。

2. 请求的回复通过 Http Status Code 表达不同含义,并且客户端可以通过 Accept header 来与服务器协商格式,例如你希望服务器返回 JSON 格式还是 XML 格式。

3. 请求的回复格式支持 JSON,XML,并且可以扩展添加其他格式。

4. 原生支持 OData。

5. 支持 Self-host 或者 IIS host。

6. 支持大多数 MVC 功能,例如 Routing/Controller/Action Result/Filter/Model Builder/IOC Container/Dependency Injection。

标签:Web,实现,子类,接口,概念,API,抽象类
From: https://blog.51cto.com/u_15964265/6181036

相关文章

  • 分享(四):免费可用的 API 大全总结(持续更新中)
    写在前面随着互联网的发展,越来越多的API被开发出来,使得开发人员可以更快速地开发和部署应用程序,下面我将向大家推荐一些免费可用的API。 天气出行类天气预报查询:支持全国以及全球多个城市的天气查询,包含15天天气预报查询。尾号限行:提供已知所有执行限行政策的共计65个大城......
  • PCIE&IIC 基本概念&图解串行通信协议
       rootcomplex是一切的根,向下生长的是pcie链路      PCI-Express是继ISA和PCI总线之后的第三代I/O总线,即3GIO。由Intel在2001年的IDF上提出,由PCI-SIG(PCI特殊兴趣组织)认证发布后才改名为“PCI-Express”。它的主要优势就是数据传输速率高,另外还有抗干扰能力......
  • 天气预报查询 API + AI 等于王炸(一大波你未曾设想的天气预报查询 API 应用场景更新了)
    前言近年来,随着信息化进程的不断深入,人们对于信息的获取和处理需求越来越高。而其中,天气查询API是一个非常重要的服务,它能够帮助人们快速获取所在位置的天气情况,同时也为各类应用提供了必要的气象数据支持。本文将介绍天气查询API的技术原理、实际应用场景以及获取API的方法......
  • 第9章 使用MVC为移动和客户端应用程序创建Web API(ASP.NET Core in Action, 2nd Editio
    本章包括创建WebAPI控制器以向客户端返回JSON使用属性路由自定义URL使用内容协商生成响应使用[ApiController]属性应用通用约定在前五章中,您已经完成了服务器端渲染ASP.NETCore应用程序的每一层,使用RazorPages将HTML渲染到浏览器。在本章中,您将看到对ASP.NETCore应用程......
  • APIpost全局变量设置--案例全局tocken设置
    官方文档https://v7-wiki.apipost.cn/docs/最佳实践/请求一个需要登录才能访问的接口(基于COOKIE)编写登录API接口,添加后执行脚本脚本内容apt.globals.delete("Authorization");apt.globals.set("Authorization",response.json.data.accessToken);这里需要注意response......
  • Linux|windows——什么是接口与API接口
    今天有个朋友问我什么接口?你们平时都说在写接口,写的是什么鬼啊?我一开始就想,咦小陈同学怎么突然了解编程接口了,不过听到他后一个提问我知道原来他想的是API接口,不过被我主观意识习惯想成了编程定义上的接口。所以就突发其想,想写篇东西说明一下编程定义的接口,与API接口含义。为了区......
  • 八年级上学期数学概念
    八年级上学期数学概念当a≥0时,√a表示a的一个平方根.把它看作由平方根号“√”与a所成的式子时,这是一个代数式代数式√a(a≥0)叫做二次根式在实数范围内,负数没有平方根一般来说,如果二次根式里被开方数是几个因式的乘积,其中有的因式是完全平方式,那么这样的因式可用他的非负平方......
  • 百度高德地图JS-API学习手记:地图基本设置与省市区数据加载
    无论是百度还是高德地图开发,还是高德地图开发。官方的给的案例启示很多,copy再修改下,就完成了https://lbs.amap.com/api/javascript-api/summary  http://lbsyun.baidu.com/index.php?title=jspopular3.0这个大致看一下,我想。有点GIS基础都能完成地图开发。个人认为百度的文档......
  • 调用百度云api实现人脸库注册代码展示
    #encoding:utf-8importbase64importrequestsdefgetToken():ak='B7E2OqVuDAyDs7OsuGPuKa4y'sk='idObOz6jqA2GdU49L2VG4VPVhgmiidvD'host=f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&cli......
  • 调用百度云api人脸库搜索代码及结果展示
    #encoding:utf-8importbase64importrequestsdefgetToken():ak='B7E2OqVuDAyDs7OsuGPuKa4y'sk='idObOz6jqA2GdU49L2VG4VPVhgmiidvD'host=f'https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&cli......