首页 > 其他分享 >API概念

API概念

时间:2023-08-01 10:33:45浏览次数:43  
标签: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_16182967/6918261

相关文章

  • PDD根据ID取商品详情 API
    为了进行电商平台的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号2)然后为每个PDD应用注册一个应用程序键(AppKey)。3)下载PDDAPI的SDK并掌握基本的API基础知识和调用4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用PDD平台的文......
  • 获得商品详情 API
    为了进行电商平台的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号2)然后为每个jd应用注册一个应用程序键(AppKey)。3)下载jdAPI的SDK并掌握基本的API基础知识和调用4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用jd平台的文档中......
  • vvic根据ID取商品详情 API
    为了进行电商平台的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号2)然后为每个vvic应用注册一个应用程序键(AppKey)。3)下载vvicAPI的SDK并掌握基本的API基础知识和调用4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用vvic平台......
  • alibaba获得店铺的所有商品 API
    为了进行电商平台的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号2)然后为每个alibaba应用注册一个应用程序键(AppKey)。3)下载alibabaAPI的SDK并掌握基本的API基础知识和调用4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用ali......
  • 用大白话科普什么是「API接口」
    ......
  • alibaba按关键字搜索商品 API
    为了进行电商平台的API开发,首先我们需要做下面几件事情。1)开发者注册一个账号2)然后为每个alibaba应用注册一个应用程序键(AppKey)。3)下载alibabaAPI的SDK并掌握基本的API基础知识和调用4)利用SDK接口和对象,传入AppKey或者必要的时候获取并传入SessionKey来进行程序开发。5)利用ali......
  • shopee根据ID取商品详情 API
    简单演示公共参数:https://o0b.cn/iinoah名称类型必须描述keyString是调用key(前往获取key和secret)secretString是调用密钥api_nameString是API接口名称(包括在请求地址中)[item_search,item_get,item_search_shop等]cacheString否[yes,no]默认yes,将调用缓存的数据,速度比较快result_typ......
  • NET6 Webapi 大驼峰传到前端变成了小驼峰
    JsonSerializerOptions.PropertyNamingPolicy属性services.AddControllers().AddJsonOptions(options=>{//获取或设置一个值,该值指定用于将对象的属性名称转换为其他格式(例如camel大小写)的策略;若为null,则保持属性名称不变......
  • rest-apiV2.0.0升级为simplest-api开源框架生态之simplest-jpa发布
    什么是simplestsimplest追求存粹简单和极致。旨在为项目快速开发提供一系列的基础能力,方便用户根据项目需求快速进行功能拓展不在去关心一些繁琐。重复工作,而是把重点聚焦到业务。前言程序10年。作为一个多年程序。深知每个项目和程序,都有很多重复性工作要做。入行近10......
  • APIs修改样式
    1.可以通过style来改,但是太鸡肋样式一多就比较麻烦2.className和classList修改多样式是推荐使用后者优先使用因为其不影响其它类名classList.addclassList.removeclassList.toggle(有此类名就减去没有就加上)......