如何提供接口给外部系统调用?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何提供接口给外部系统调用?相关的知识,希望对你有一定的参考价值。

我现在有这样一个需求,我们公司有一个内部系统,有一些数据和另一个系统中的数据是差不多的,所以我们想在我们现在这个系统做一个接口,让另一套系统可以将数据提交到我们的数据库中去,现在已经确定了不用Web Services来做,想给一个地址,让别人通过表单post数据过来,然后入库,但是我怎样做到数据来源的合法性,也就是考虑到系统的安全,我的同事说让我加一个hash码,我不知道怎么去理解这个所谓的随机码,请高手指教,谢谢,如果答得好,我可以加最高分!(忘记说了,我用的是java,还有如果可以用hash码,那我去哪里弄那个算法)

用户接口,也称用户界面(user interface),有两种含义,一是指用户与操作系统交互的途径与通道(用户接口),另一种是指这种交互环境的控制操作方式,即操作环境(用户交互界面)。用户接口是一种形式,互操作性是其方法,易用性才是其目的。用户接口常分为命令接口和程序接口,两种接口的易用性支持称为环境接口,也称交互界面。
用户
(1) 操作系统的命令接口
通过在用户和操作系统之间提供高级通信来控制程序运行,用户通过输入设备发出一系列命令告诉操作系统执行所需功能,它包括了键盘操作命令和作业控制命令,称为作业一级的用户接口。命令接口的两种最普遍和主要的方式是直接命令方式(命令行)和间接命令方式(命令文件)。
(2) 操作系统的程序接口
它是用户程序和操作系统之间的接口,用户程序通过它们使用系统资源及系统服务,这种接口方式通常采用若干系统调用组成。系统调用是操作系统对外提供的一批系统子功能,是一类特殊的过程调用,由机器指令完成。
(3) 操作系统的交互界面
它直接支持界面和程序界面,提供一个易用性的操作平台,使用户非常方便地寻找和使用各种命令、执行各类程序,完成各种操作。
例:菜单驱动、视窗操作环境等
交互界面要求是友好的,设计时应考虑简化命令、用户响应(提示、求助)和系统后援(命令重呼、确认)等问题
参考技术A 无语,,打酱油路过。。。。本回答被提问者采纳

java门面模式

一、简介

  隐藏系统的复杂性,对外提供统一的访问入口,外部系统访问只通过此暴露出的统一接口访问。是一种结构型模式。封装子系统接口的复杂性,提供统一的对外接口,能够使子系统更加简单的被使用。

二、结构及使用场景

技术图片

如上所示,可以很简单明了的看出,Facede就是将复杂的底层系统,封装到一个统一的接口,更简单的提供给外部客户端使用。其中,涉及角色:

  1、客户端client角色:通过调用facede门面,来调用服务,完成功能

  2、门面facede角色:子系统服务和客户端的纽带。通过特定的需求,可以封装子系统接口,提供统一接口供客户端使用

  3、子系统角色:真正处理任务的地方。

使用场景:封装复杂的子系统,提供统一简单的对外服务接口

三、代码简例

package com.cfang.oTest;

import lombok.extern.slf4j.Slf4j;

@Slf4j
public class TestFacede 

	/*
	 * 	client调用
	 */
	public static void main(String[] args) 
		Facede facede = new Facede();
		facede.open();
		log.info("========");
		facede.close();
	
	
	/*
	 * 	Facede
	 */
	static class Facede
		private SystemA systemA;
		private SystemB systemB;
		public Facede()
			systemA = new SystemA();
			systemB = new SystemB();
		
		public void open() 
			systemA.openA();
			systemB.openB();
		
		
		public void close() 
			systemA.closeA();
			systemB.closeB();
		
	
	
	/*
	 * 	子系统A
	 */
	static class SystemA
		public void openA()
			log.info("open a...");
		
		public void closeA()
			log.info("close a...");
		
	
	/*
	 * 	子系统B
	 */
	static class SystemB
		public void openB()
			log.info("open b...");
		
		public void closeB()
			log.info("close b...");
		
	

  运行结果:

技术图片

以上可以看出,有了facede,客户端如果想做开启子系统的时候,不需要知道具体的open细节,如何open,直接通过facede中提供的统一open即可完成。

三、优缺点

      优点:1、解耦 - 客户端与子系统解耦,不需要关注子系统如何实践,只需要跟facede交互即可

       2、更好的划分系统接口:对内和对外的接口,可以做很好的区别划分

以上是关于如何提供接口给外部系统调用?的主要内容,如果未能解决你的问题,请参考以下文章

系统调用初步

java如何调用别人系统的接口

webService接口提供给别的系统调用

关于接口测试的全面总结

操作系统:系统调用

Go笔记-标准库的介绍