KR102563179B1 - Automated rest api service creation for rest api client development, and method thereof - Google Patents

Automated rest api service creation for rest api client development, and method thereof Download PDF

Info

Publication number
KR102563179B1
KR102563179B1 KR1020230027878A KR20230027878A KR102563179B1 KR 102563179 B1 KR102563179 B1 KR 102563179B1 KR 1020230027878 A KR1020230027878 A KR 1020230027878A KR 20230027878 A KR20230027878 A KR 20230027878A KR 102563179 B1 KR102563179 B1 KR 102563179B1
Authority
KR
South Korea
Prior art keywords
rest api
api service
file
rest
service
Prior art date
Application number
KR1020230027878A
Other languages
Korean (ko)
Inventor
성현진
강선근
Original Assignee
브레인즈컴퍼니 주식회사
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 브레인즈컴퍼니 주식회사 filed Critical 브레인즈컴퍼니 주식회사
Priority to KR1020230027878A priority Critical patent/KR102563179B1/en
Application granted granted Critical
Publication of KR102563179B1 publication Critical patent/KR102563179B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/36Software reuse
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/901Indexing; Data structures therefor; Storage structures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/35Creation or generation of source code model driven
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45545Guest-host, i.e. hypervisor is an application program itself, e.g. VirtualBox
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/565Conversion or adaptation of application format or content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45562Creating, deleting, cloning virtual machine instances
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45591Monitoring or debugging support

Abstract

REST API 서버 및 그의 동작 방법이 개시된다. 본 발명의 실시 예에 따른 REST API 서버의 동작 방법은, REST API(Representational State Transfer Application Program Interface) 서비스에 대한 메타정보를 등록하는 단계, 클라이언트의 요청 및 스케줄링에 대응하는 메타 정보로부터 URI(Uniform Resource Identifier)를 식별하는 단계, 식별된 URI를 분석하여, 등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성하는 단계, REST API 서비스를 위한 소스 파일을 결정하는 단계, 결정된 소스 파일에 대한 연결을 위한 라우팅 파일을 생성하는 단계, 및 REST API 서비스를 수행하는 소스코드를 산출하는 단계를 포함한다.A REST API server and its operating method are disclosed. A method of operating a REST API server according to an embodiment of the present invention includes registering meta information for a REST API (Representational State Transfer Application Program Interface) service, URI (Uniform Resource Resource) from meta information corresponding to a client request and scheduling. Identifier), analyzing the identified URI, generating source code and directories based on the registered REST API, determining source files for REST API services, and determining source files for connection to the determined source files. A step of generating a routing file, and a step of calculating a source code that performs a REST API service.

Description

REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버 및 방법 {AUTOMATED REST API SERVICE CREATION FOR REST API CLIENT DEVELOPMENT, AND METHOD THEREOF}Virtual REST API service automatic creation server and method for REST API client development {AUTOMATED REST API SERVICE CREATION FOR REST API CLIENT DEVELOPMENT, AND METHOD THEREOF}

본 발명은 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버 및 방법에 관한 것으로서, 보다 상세하게는, 서버 개발자 및 클라이언트 개발자의 요구를 모두 충족할 수 있는 REST API 서비스를 제공하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버 및 방법에 관한 것이다.The present invention relates to a server and method for automatically generating a virtual REST API service for developing a REST API client, and more particularly, to developing a REST API client that provides a REST API service that can satisfy the needs of both server developers and client developers. It relates to a server and method for automatically creating a virtual REST API service for

API(Application Program Interface)는 클라이언트가 리소스를 요청할 수 있도록 서버측에서 제공하는 인터페이스로, 데이터와 기능의 집합을 제공하여 컴퓨터 프로그램간 상호작용을 촉진하고, 서로간의 정보 교환이 가능하도록 한다.An API (Application Program Interface) is an interface provided by the server side so that a client can request a resource, and facilitates interaction between computer programs by providing a set of data and functions and enables information exchange between them.

이러한 API를 REST(Representational State Transfer) 기반으로 구현하는 것을 REST API라 한다. REST는 웹의 컴퓨터 시스템 간에 표준을 제공하여 시스템이 서로 쉽게 통신할 수 있도록 하는 아키텍처의 하나로, 현재는 공기업 및 사기업의 대부분이 API 서비스를 제공하고 있어, 웹 서비스의 표준 기술로 자리잡고 있다.REST API is the implementation of these APIs based on REST (Representational State Transfer). REST is one of the architectures that provides standards between web computer systems so that systems can easily communicate with each other. Currently, most public and private companies provide API services, making it a standard technology for web services.

클라이언트 개발자들은 REST API를 제공하는 클라우드 환경을 이용한 클라이언트 프로그램 개발을 진행함에 있어, 개발 및 유지보수 단계에서 REST 서비스를 사용하게 되는데, REST 서비스를 장시간 사용하는 것은 비용 및 관리적인 측면에서 매우 부담이 되고 있는 상황이다. 일 예로, AWS 클라우드 및 구글 클라우드의 API 서비스를 이용하여 클라이언트 프로그램을 개발한다면, 사용 시간 및 서버의 사양에 따라 그 비용이 상당히 증가한다.Client developers use REST services in the development and maintenance phase when developing client programs using a cloud environment that provides REST APIs. Using REST services for a long time is very burdensome in terms of cost and management. there is a situation For example, if a client program is developed using API services of AWS Cloud and Google Cloud, the cost increases significantly depending on the usage time and server specifications.

그럼에도 불구하고, 클라이언트 개발자들은 개발 단계에서 REST API 서비스를 수시로 요청하고 테스트하기를 원한다. 이에, REST API 시뮬레이션 서버를 구축하는 서버 개발자들은 클라이언트 개발자들의 요구에 의해 각 API 서비스들을 수행하는 소스 파일을 일일이 작성 및 추가하는 등의 작업으로 인해 업무가 가중되고 있는 실정이다.Nevertheless, client developers want to frequently request and test REST API services in the development stage. Accordingly, server developers who build REST API simulation servers are under heavy workload due to tasks such as creating and adding source files that perform each API service one by one at the request of client developers.

특히, 서버 개발자들의 업무 중 소스코드의 작성, 빌드, 및 배포 과정에서 단순 작업들이 반복되는 경우가 많은데, 이러한 단순 작업의 반복은 서버 개발자들의 피로도를 더욱 증가시키는 원인이 되고 있다.In particular, there are many cases in which simple tasks are repeated in the course of preparing, building, and distributing source codes among server developers, and repetition of these simple tasks causes server developers to further increase their fatigue.

그러므로, REST API를 제공하는 클라우드 환경을 이용한 클라이언트 프로그램 개발시, 클라이언트 개발자 및 서버 개발자 모두에 대한 업무상 발생하는 요구를 충족할 수 있는 방안이 요구된다.Therefore, when developing a client program using a cloud environment that provides a REST API, a method capable of satisfying business demands for both client developers and server developers is required.

국내등록특허 제10-2417742호(2022. 07. 01. 등록)Korean Registered Patent No. 10-2417742 (registered on July 1, 2022)

전술한 문제점을 해결하기 위하여 본 발명이 이루고자 하는 기술적 과제는, REST 서버 개발자의 도움없이 클라이언트 개발자 단독으로 REST API 서비스를 구현 및 생성이 가능한 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버 및 방법을 제시하는 데 있다.In order to solve the above problems, the technical problem to be achieved by the present invention is a virtual REST API service automatic generation server and method for developing a REST API client capable of implementing and creating a REST API service alone by a client developer without the help of a REST server developer. is presenting

본 발명의 해결과제는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 해결과제들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The problems of the present invention are not limited to those mentioned above, and other problems not mentioned will be clearly understood by those skilled in the art from the description below.

전술한 기술적 과제를 해결하기 위한 수단으로서, 본 발명의 실시 예에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법은, REST API(Representational State Transfer Application Program Interface) 서비스에 대한 메타정보를 등록하는 단계, 클라이언트의 요청 및 스케줄링에 대응하는 메타 정보로부터 URI(Uniform Resource Identifier)를 식별하는 단계, 식별된 URI를 분석하여, 등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성하는 단계, REST API 서비스를 위한 소스 파일을 결정하는 단계, 결정된 소스 파일에 대한 연결을 위한 라우팅 파일을 생성하는 단계, 및 REST API 서비스를 수행하는 소스코드를 산출하는 단계를 포함한다.As a means for solving the above-described technical problem, the method for automatically generating a virtual REST API service for developing a REST API client according to an embodiment of the present invention registers meta information for a REST API (Representational State Transfer Application Program Interface) service. step of identifying a Uniform Resource Identifier (URI) from meta information corresponding to a client's request and scheduling, analyzing the identified URI and creating a source code and directory based on the registered REST API, REST API It includes determining a source file for a service, generating a routing file for connection to the determined source file, and calculating a source code that performs a REST API service.

바람직하게, 메타정보를 등록하는 단계는, REST API 서비스에 대한 상세정보를 작성하고 등록할 수 있다.Preferably, registering meta information may create and register detailed information about a REST API service.

또한 바람직하게, 소스 파일을 결정하는 단계에서, URI의 최외측 리프 노드(leaf node)를 소스 파일로 결정할 수 있다.Also preferably, in the step of determining the source file, the outermost leaf node of the URI may be determined as the source file.

또한 바람직하게, API 서비스에 대한 요청이 입력되면, 생성된 라우팅 파일에 의해 요청과 대응하는 REST API 서비스 코드를 로딩하는 단계, 및 REST API 호출에 대한 응답 데이터를 전송하는 단계를 더 포함할 수 있다.Also preferably, when a request for an API service is entered, the step of loading the REST API service code corresponding to the request by the generated routing file, and the step of transmitting response data for the REST API call may be further included. .

또한 바람직하게, 로딩하는 단계 이후, 포맷 변환 규칙을 사용하도록 설정된 경우, 로딩된 REST API 서비스 코드를 이용하여 등록된 메타정보에 접근하는 단계 및 메타정보로부터 기설정된 규칙에 의해 포맷 변환을 수행하는 단계를 더 포함할 수 있다.Also preferably, after the loading step, if the format conversion rule is set to be used, accessing the registered meta information using the loaded REST API service code and performing format conversion from the meta information according to a preset rule. may further include.

또한 바람직하게, 디렉터리를 생성하는 단계는, 등록된 REST API의 자체표현구조(Self-descriptiveness)를 바탕으로 URI를 파싱하여 디렉터리를 재귀 구조로 자동 생성할 수 있다.Also preferably, in the step of creating a directory, the directory may be automatically created in a recursive structure by parsing the URI based on the self-descriptiveness of the registered REST API.

또한 바람직하게, 라우팅 파일을 생성하는 단계는, 하나의 라우팅 파일에 전체 REST API 서비스에 대한 라우트를 작성할 수 있다.Also preferably, in the step of creating a routing file, routes for all REST API services can be created in one routing file.

한편, 본 발명의 다른 실시 예에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버는, REST API 서비스에 대한 메타정보를 등록하는 등록부, 및 클라이언트의 요청 및 스케줄링에 의해 REST API 서비스를 수행하는 소스코드를 산출하는 메인 생성부를 포함하고, 메인 생성부는, 클라이언트의 요청 및 스케줄링에 대응하는 메타 정보로부터 URI(Uniform Resource Identifier)를 식별하는 식별부, 식별된 URI를 분석하여 등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성하는 디렉터리 생성부, REST API 서비스를 위한 소스 파일을 결정하는 결정부, 결정된 소스 파일에 대한 연결을 위한 라우팅 파일을 생성하는 파일 생성부, 및 REST API 서비스를 수행하는 소스코드를 산출하는 소스코드 산출부를 포함한다.On the other hand, the virtual REST API service automatic generation server for REST API client development according to another embodiment of the present invention performs the REST API service by a registration unit registering meta information about the REST API service, and requests and scheduling from clients. and a main generation unit that calculates a source code to generate a source code, and the main generation unit identifies a URI (Uniform Resource Identifier) from meta information corresponding to a client's request and scheduling, and analyzes the identified URI to generate a registered REST API. Based on the directory creation unit that creates source code and directories, the decision unit that determines the source file for the REST API service, the file generation unit that creates the routing file for connection to the determined source file, and the REST API service that performs the It includes a source code calculation unit that calculates source code.

바람직하게, 등록부는, REST API 서비스에 대한 상세정보를 작성하고 등록할 수 있다.Preferably, the registration unit may create and register detailed information on the REST API service.

또한 바람직하게, 결정부는, URI의 최외측 리프 노드(leaf node)를 소스 파일로 결정할 수 있다.Also preferably, the determination unit may determine an outermost leaf node of the URI as a source file.

또한 바람직하게, REST API 서비스에 대한 요청이 입력되면, 생성된 라우팅 파일에 의해 요청과 대응하는 REST API 서비스 코드를 로딩하고, REST API 호출에 대한 응답 데이터를 전송하는 출력부를 더 포함할 수 있다.Also preferably, when a request to the REST API service is input, an output unit for loading a REST API service code corresponding to the request by the generated routing file and transmitting response data to the REST API call may be further included.

또한 바람직하게, 출력부는, REST API 서비스 코드를 로딩한 후, 포맷 변환 규칙을 사용하도록 설정된 경우, 로딩된 REST API 서비스 코드를 이용하여 등록된 메타정보에 접근하고, 메타정보로부터 기설정된 규칙에 의해 포맷 변환을 수행할 수 있다.Also preferably, the output unit accesses registered meta information using the loaded REST API service code, when the format conversion rule is set to be used after loading the REST API service code, and from the meta information according to a preset rule. Format conversion can be performed.

또한 바람직하게, 디렉터리 생성부는, 등록된 REST API의 자체표현구조를 바탕으로 URI를 파싱하여 디렉터리를 재귀 구조로 자동 생성할 수 있다.Also preferably, the directory creation unit may automatically create a directory in a recursive structure by parsing the URI based on the self-expression structure of the registered REST API.

또한 바람직하게, 파일 생성부는, 하나의 라우팅 파일에 전체 REST API 서비스에 대한 라우트를 작성할 수 있다.Also preferably, the file creation unit may create routes for all REST API services in one routing file.

본 발명에 따르면, 데이터베이스에 REST API 서비스를 위한 메타정보를 등록해둠으로써, 서버 개발자의 추가적인 행위가 없더라도 클라이언트 개발자가 손쉽게 REST API 서비스를 이용할 수 있는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버 및 방법을 제공하는 효과가 있다.According to the present invention, by registering the meta information for the REST API service in the database, a virtual REST API service automatic generation server for developing a REST API client in which a client developer can easily use the REST API service even without an additional action by a server developer. And it has the effect of providing a method.

이에 의해, 서버 개발자 및 클라이언트 개발자 모두가 만족할 수 있는 REST API 서비스를 제공할 수 있다. 또한, REST API 서비스를 이용한 개발 기간을 단축시킬 수 있고, 개발에 소요되는 비용을 절감할 수 있는 효과가 있다.As a result, it is possible to provide a REST API service that both server developers and client developers can be satisfied with. In addition, the development period using the REST API service can be shortened, and the cost required for development can be reduced.

본 발명의 효과는 이상에서 언급된 것들에 한정되지 않으며, 언급되지 아니한 다른 효과들은 아래의 기재로부터 당업자에게 명확하게 이해될 수 있을 것이다.The effects of the present invention are not limited to those mentioned above, and other effects not mentioned will be clearly understood by those skilled in the art from the description below.

도 1은 본 발명의 바람직한 실시예에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 시스템 구성도,
도 2는 도 1에 도시한 메인 생성부의 블럭도,
도 3은 본 발명에 따른 REST 서버 중 등록부에서 제공하는 UI를 예시한 도면,
도 4는 본 발명에 따른 REST 서버 중 메인 생성부에 의해 생성되는 라우팅 파일을 예시한 도면,
도 5는 본 발명에 따른 REST 서버 중 메인 생성부에 의해 생성되는 디렉터리를 예시한 도면,
도 6은 본 발명에 따른 REST 서버 중 등록부의 동작을 설명하기 위한 흐름도,
도 7은 본 발명에 따른 REST 서버 중 메인 생성부의 동작을 설명하기 위한 흐름도, 그리고,
도 8은 본 발명에 따른 REST 서버 중 출력부의 동작을 설명하기 위한 흐름도이다.
1 is a configuration diagram of a system for automatically generating a virtual REST API service for developing a REST API client according to a preferred embodiment of the present invention;
Figure 2 is a block diagram of the main generator shown in Figure 1;
3 is a diagram illustrating a UI provided by a registration unit among REST servers according to the present invention;
4 is a diagram illustrating a routing file generated by a main generator of a REST server according to the present invention;
5 is a diagram illustrating a directory created by a main creation unit among REST servers according to the present invention;
6 is a flowchart for explaining the operation of the register of the REST server according to the present invention;
7 is a flowchart for explaining the operation of the main generation unit of the REST server according to the present invention, and
8 is a flowchart for explaining the operation of the output unit of the REST server according to the present invention.

이상의 본 발명의 목적들, 다른 목적들, 특징들 및 이점들은 첨부된 도면과 관련된 이하의 바람직한 실시 예들을 통해서 쉽게 이해될 것이다. 그러나 본 발명은 여기서 설명되는 실시 예들에 한정되지 않고 다른 형태로 구체화될 수도 있다. 오히려, 여기서 소개되는 실시 예들은 개시된 내용이 철저하고 완전해질 수 있도록 그리고 당업자에게 본 발명의 사상이 충분히 전달될 수 있도록 하기 위해 제공되는 것이다.The above objects, other objects, features and advantages of the present invention will be easily understood through the following preferred embodiments in conjunction with the accompanying drawings. However, the present invention is not limited to the embodiments described herein and may be embodied in other forms. Rather, the embodiments introduced herein are provided so that the disclosed content will be thorough and complete and the spirit of the present invention will be sufficiently conveyed to those skilled in the art.

본 명세서에서, 어떤 구성요소가 다른 구성요소 상에 있다고 언급되는 경우에 그것은 다른 구성요소 상에 직접 형성될 수 있거나 또는 그들 사이에 제 3의 구성요소가 개재될 수도 있다는 것을 의미한다.In this specification, when an element is referred to as being on another element, it means that it may be directly formed on the other element or a third element may be interposed therebetween.

본 명세서에서 제1, 제2 등의 용어가 구성요소들을 기술하기 위해서 사용된 경우, 이들 구성요소들이 이 같은 용어들에 의해서 한정되어서는 안 된다. 이들 용어들은 단지 어느 구성요소를 다른 구성요소와 구별시키기 위해서 사용되었을 뿐이다. 여기에 설명되고 예시되는 실시 예들은 그것의 상보적인 실시 예들도 포함한다.In this specification, when terms such as first and second are used to describe components, these components should not be limited by these terms. These terms are only used to distinguish one component from another. Embodiments described and illustrated herein also include complementary embodiments thereof.

또한, 제1 엘리먼트 (또는 구성요소)가 제2 엘리먼트(또는 구성요소) 상(ON)에서 동작 또는 실행된다고 언급될 때, 제1 엘리먼트(또는 구성요소)는 제2 엘리먼트(또는 구성요소)가 동작 또는 실행되는 환경에서 동작 또는 실행되거나 또는 제2 엘리먼트(또는 구성요소)와 직접 또는 간접적으로 상호 작용을 통해서 동작 또는 실행되는 것으로 이해되어야 할 것이다.Also, when it is said that a first element (or component) operates or is executed on (ON) a second element (or component), the first element (or component) means that the second element (or component) It should be understood that it is operated or executed in an environment in which it is operated or executed, or operated or executed through direct or indirect interaction with the second element (or component).

어떤 엘리먼트, 구성요소, 장치, 또는 시스템이 프로그램 또는 소프트웨어로 이루어진 구성요소를 포함한다고 언급되는 경우, 명시적인 언급이 없더라도, 그 엘리먼트, 구성요소, 장치, 또는 시스템은 그 프로그램 또는 소프트웨어가 실행 또는 동작하는데 필요한 하드웨어(예를 들면, 메모리, CPU 등)나 다른 프로그램 또는 소프트웨어(예를 들면 운영체제나 하드웨어를 구동하는데 필요한 드라이버 등)를 포함하는 것으로 이해되어야 할 것이다.Where an element, component, device, or system is referred to as including a component consisting of a program or software, even if not explicitly stated otherwise, that element, component, device, or system means that the program or software executes or operates. It should be understood that it includes hardware (eg, memory, CPU, etc.) or other programs or software (eg, operating system or driver required to drive hardware) required to do so.

또한, 어떤 엘리먼트(또는 구성요소)가 구현됨에 있어서 특별한 언급이 없다면, 그 엘리먼트(또는 구성요소)는 소프트웨어, 하드웨어, 또는 소프트웨어 및 하드웨어 어떤 형태로도 구현될 수 있는 것으로 이해되어야 할 것이다.In addition, it should be understood that, unless otherwise specified, the element (or component) may be implemented in any form of software, hardware, or both software and hardware.

또한, 본 명세서에서 사용된 용어는 실시 예들을 설명하기 위한 것이며 본 발명을 제한하고자 하는 것은 아니다. 본 명세서에서, 단수형은 문구에서 특별히 언급하지 않는 한 복수형도 포함한다. 명세서에서 사용되는 '포함한다(comprises)' 및/또는 '포함하는(comprising)'은 언급된 구성요소는 하나 이상의 다른 구성요소의 존재 또는 추가를 배제하지 않는다.In addition, terms used in this specification are for describing embodiments and are not intended to limit the present invention. In this specification, singular forms also include plural forms unless specifically stated otherwise in a phrase. The terms 'comprises' and/or 'comprising' used in the specification do not exclude the presence or addition of one or more other elements.

도 1은 본 발명의 바람직한 실시예에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 시스템 구성도이다.1 is a configuration diagram of a system for automatically generating a virtual REST API service for developing a REST API client according to a preferred embodiment of the present invention.

도 1을 참조하여, 본 발명의 바람직한 실시예에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 시스템은, REST API 클라이언트 개발을 위한 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버(이하, 'REST 서버'라 한다)(100), 데이터베이스(200), 및 복수의 개발자 단말장치(300)로 이루어진다.Referring to FIG. 1, the system for automatically generating a virtual REST API service for developing a REST API client according to a preferred embodiment of the present invention is a server for automatically generating a virtual REST API service for developing a REST API client for developing a REST API client (hereinafter , referred to as a 'REST server') 100, a database 200, and a plurality of developer terminal devices 300.

REST 서버(100)는 REST API 클라이언트 개발을 위한 가상 REST API 서비스를 제공하기 위한 서버이다. REST API는 REST 아키텍처 스타일의 제약 조건을 준수하고, RESTful 웹 서비스와 상호 작용할 수 있도록 하는 어플리케이션 프로그래밍 인터페이스이다.The REST server 100 is a server for providing a virtual REST API service for developing a REST API client. A REST API is an application programming interface that conforms to the constraints of the REST architectural style and allows interaction with RESTful web services.

REST 서버(100)는 REST API 서비스에 대한 메타정보를 등록하고, 클라이언트의 요청 및 스케줄링에 의해 REST API 서비스를 수행하는 소스코드를 산출한다. 또한, REST 서버(100)는 개발자의 요청에 대해 REST API 서비스를 제공한다.The REST server 100 registers meta information about the REST API service, and calculates source code for performing the REST API service by a client's request and scheduling. In addition, the REST server 100 provides a REST API service for a developer's request.

REST 서버(100)는 등록부(110), 메인 생성부(120), 및 출력부(130)를 포함한다. REST 서버(100)에는 DjangoREST Framework가 적용될 수 있다.The REST server 100 includes a registration unit 110, a main generation unit 120, and an output unit 130. DjangoREST Framework may be applied to the REST server 100.

등록부(110)는 REST API 서비스에 대한 메타정보를 등록한다. 등록부(110)를 통해 등록되는 메타정보는 개발자 단말장치(300)로부터 입력되는 것으로, 메타정보를 등록하는 것은 REST API 서비스에 대한 상세정보를 작성하여 등록하는 동작을 의미한다.The registration unit 110 registers meta information about the REST API service. Meta information registered through the registration unit 110 is input from the developer terminal device 300, and registering meta information means an operation of creating and registering detailed information about a REST API service.

REST API 서비스에 대한 상세정보는 타이틀 명, URI, 응답데이터, 작성자, 및 타입을 포함할 수 있다. 상세정보의 구체적인 정보 종류를 예시하였으나, 상황에 따라 정보의 종류는 더 추가될 수 있다. Detailed information on the REST API service may include title name, URI, response data, author, and type. Specific information types of detailed information have been exemplified, but additional types of information may be added depending on circumstances.

등록부(110)에 의해 등록되는 메타정보는 표준화된 규칙에 의해 데이터베이스(200)에 저장 및 보관된다. 이에 의해, 메타정보는 필요에 의해 자유롭게 수정 및 추가될 수 있다. 등록부(110)는 React JS에 의해 구현될 수 있다.Meta information registered by the registration unit 110 is stored and stored in the database 200 according to standardized rules. Accordingly, the meta information can be freely modified and added as needed. The register 110 may be implemented by React JS.

메인 생성부(120)는 클라이언트의 요청 및 스케줄링에 대응하는 REST API 서비스를 수행한다. 메인 생성부(120)에 대하여는 후술하는 도 2에서 보다 상세히 설명한다. 메인 생성부(120)는 Python 3.9에 의해 구현될 수 있다.The main generating unit 120 performs a REST API service corresponding to a client's request and scheduling. The main generator 120 will be described in more detail in FIG. 2 to be described later. The main generator 120 may be implemented by Python 3.9.

출력부(130)는 REST API 서비스에 대한 요청이 입력되면, 기생성된 라우팅 파일에 의해 기입력된 REST API 서비스에 대한 요청과 대응하는 REST API 서비스 코드를 로딩하고, REST API 호출에 대한 응답 데이터를 전송한다.When a request for the REST API service is input, the output unit 130 loads the REST API service code corresponding to the request for the REST API service previously input by the pre-generated routing file, and response data for the REST API call. send

출력부(130)는 REST API 서비스 코드를 로딩한 후, 포맷 변환 규칙을 사용하도록 설정된 경우, 로딩된 REST API 서비스 코드를 이용하여 데이터베이스(200)의 메타정보에 접근하고, 메타정보로부터 기설정된 규칙에 의해 포맷 변환을 수행한다.After loading the REST API service code, the output unit 130 accesses the meta information of the database 200 using the loaded REST API service code, when it is set to use the format conversion rule, and rules set from the meta information. Format conversion is performed by

데이터베이스(200)는 REST API 서비스 제공을 위한 시스템의 동작에 필요한 모든 정보를 데이터베이스화하여 저장 및 관리할 수 있다. 일 예로, 데이터베이스(200)에는 REST 서버(100)에 의해 입력되는 REST API 서비스에 대한 메타정보를 저장할 수 있고, REST 서버(100)의 요청에 의해 기저장된 메타정보를 제공할 수 있다.The database 200 can store and manage all information necessary for the operation of the system for providing REST API services into a database. For example, the database 200 may store meta information about the REST API service input by the REST server 100, and may provide pre-stored meta information upon request from the REST server 100.

데이터베이스(200)에 저장되는 메타정보는 xml/json/text 형식이 될 수 있다. 데이터베이스(200)에 저장된 메타정보를 통해, 전체 REST API 서비스에 대한 목록 및 상세정보를 확인할 수 있고, 클라이언트의 요청에 따라 REST API 서비스를 추가, 수정, 및 삭제할 수 있다. 데이터베이스(200)는 postgresql-11에 의해 구현될 수 있다.Meta information stored in the database 200 may be in the form of xml/json/text. Through the meta information stored in the database 200, a list and detailed information of all REST API services can be checked, and REST API services can be added, modified, and deleted according to a client's request. Database 200 may be implemented by postgresql-11.

복수의 개발자 단말장치(300)는 클라이언트 개발자에 해당하는 단말장치로, REST 서버(100)에 REST API 서비스에 대한 메타정보를 등록할 수 있다. 여기서, 메타정보는 해당 서비스의 타이틀명, URI, 응답데이터, 작성자, 및 타입을 포함할 수 있다.The plurality of developer terminal devices 300 are terminal devices corresponding to client developers, and may register meta information about the REST API service in the REST server 100 . Here, the meta information may include the title name, URI, response data, creator, and type of the corresponding service.

도 2는 도 1에 도시한 메인 생성부의 블럭도이다.FIG. 2 is a block diagram of the main generating unit shown in FIG. 1 .

도 2를 참조하여, 본 발명에 따른 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 시스템을 구성하는 REST 서버(100)의 메인 생성부(120)를 설명한다. 도시한 바와 같이, 메인 생성부(120)는 식별부(121), 디렉터리 생성부(122), 결정부(123), 파일 생성부(124), 및 소스코드 산출부(125)를 포함한다.Referring to FIG. 2 , the main generation unit 120 of the REST server 100 constituting the virtual REST API service automatic generation system for developing a REST API client according to the present invention will be described. As shown, the main generation unit 120 includes an identification unit 121, a directory creation unit 122, a determination unit 123, a file generation unit 124, and a source code calculation unit 125.

식별부(121)는 클라이언트의 요청 및 스케줄링에 대응하는 메타정보로부터 URI(Uniform Resource Identifier)를 식별한다. URI는 통합 자원 식별자라는 의미로, 인터넷에 있는 자원을 나타내는 유일한 주소이다.The identification unit 121 identifies a URI (Uniform Resource Identifier) from meta information corresponding to a client's request and scheduling. A URI stands for Uniform Resource Identifier, and is a unique address representing a resource on the Internet.

디렉터리 생성부(122)는 식별부(121)에 의해 식별된 URI를 분석하여 기등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성한다. 이때, 디렉터리 생성부(122)는 등록된 REST API의 자체표현구조(Self-descriptiveness)를 바탕으로 URI를 파싱하여 디렉터리를 재귀 구조로 자동 생성해낼 수 있다.The directory creation unit 122 analyzes the URI identified by the identification unit 121 and creates a source code and directory based on a pre-registered REST API. At this time, the directory creation unit 122 may automatically create a directory in a recursive structure by parsing the URI based on the self-descriptiveness of the registered REST API.

결정부(123)는 REST API 서비스를 위한 소스 파일을 결정한다. 이때, 결정부(123)는 URI의 최외측 리프 노드(leaf node)의 문자열을 취하는 동작에 의해 소스 파일을 결정할 수 있다.The determination unit 123 determines a source file for a REST API service. At this time, the determination unit 123 may determine the source file by an operation of taking a string of an outermost leaf node of the URI.

예를 들면, REST API 서비스에 대한 상세정보에 존재하는 URI는 "http://[domain]/[uri-0]/[uri-1]/[uri-3]/[uri-4]"의 형식일 수 있다. 이때, 결정부(123)는 URI의 최외측 리프 노드의 문자열인 "[uri-4]"에 의해 결정될 수 있다.For example, the URI present in the detailed information about the REST API service is "http://[domain]/[uri-0]/[uri-1]/[uri-3]/[uri-4]" can be in the form At this time, the determination unit 123 may determine by "[uri-4]", which is a string of the outermost leaf node of the URI.

파일 생성부(124)는 결정부(123)에 의해 결정된 소스 파일에 대한 연결을 위한 라우팅 파일(route.urls)을 생성한다. 이때, 파일 생성부(124)는 REST API 서비스별로 각각의 라우팅 파일을 생성할 수도 있고, 혹은 하나의 파일에 전체 REST API 서비스에 대한 라우트를 작성할 수도 있다.The file creation unit 124 creates a routing file (route.urls) for connection to the source file determined by the determination unit 123. At this time, the file creation unit 124 may create each routing file for each REST API service, or may create a route for all REST API services in one file.

소스코드 산출부(125)는 REST API 서비스를 수행하는 소스코드를 산출한다.The source code calculator 125 calculates source code for performing REST API services.

도 3은 본 발명에 따른 REST 서버 중 등록부에서 제공하는 UI를 예시한 도면이다.3 is a diagram illustrating a UI provided by a registration unit among REST servers according to the present invention.

도 3에 도시한 UI는 등록부(110)에서 개발자 단말장치(300)로 제공하는 UI에 해당하는 것으로, UI의 일측에는 기등록되어 있는 REST API 서비스의 목록 표시 영역(A)이 표시되고, REST API 서비스의 목록 표시 영역(A)의 측면에는 메타정보를 입력할 수 있는 메타정보 입력 영역(B)이 표시된다.The UI shown in FIG. 3 corresponds to the UI provided from the registration unit 110 to the developer terminal device 300, and a list display area A of previously registered REST API services is displayed on one side of the UI, and REST API services shown in FIG. On the side of the API service list display area (A), a meta information input area (B) for entering meta information is displayed.

REST API 서비스의 목록 표시 영역(A)에는 기등록되어 있는 REST API 서비스에 대한 메타정보의 등록일, 서비스명, 빌드상태, API 명, URI가 기설정된 순서에 의해 리스트 형태로 표시된다.In the list display area (A) of REST API services, registration date, service name, build status, API name, and URI of meta information about previously registered REST API services are displayed in a list form in a preset order.

메타정보 입력 영역(B)에는 메타정보 등록을 위해 필요로 하는 정보 예를 들면, API 명, URI, 등록자명, 서비스 모델, 응답형식, 및 REST API 서비스에 대한 상세설명 등을 입력할 수 있는 입력 창들이 구비된다.In the meta information input area (B), input information required for meta information registration, such as API name, URI, registrant name, service model, response format, and detailed description of REST API service, etc. Windows are provided.

도 4는 본 발명에 따른 REST 서버 중 메인 생성부에 의해 생성되는 라우팅 파일을 예시한 도면이다.4 is a diagram illustrating a routing file generated by a main generator of a REST server according to the present invention.

파일 생성부(124)는 REST API 서비스를 위해 결정된 소스 파일에 대한 연결을 위해 라우팅 파일을 생성한다. 파일 생성부(124)에 의해 자동으로 생성되는 라우팅 파일을 도 4에 예시하였다. 라우팅 파일은 route.urls의 형식일 수 있다.The file creation unit 124 creates a routing file for connection to the source file determined for the REST API service. A routing file automatically generated by the file generator 124 is illustrated in FIG. 4 . A routing file can be in the form of route.urls.

도 5는 본 발명에 따른 REST 서버 중 메인 생성부에 의해 생성되는 디렉터리를 예시한 도면이다.5 is a diagram illustrating a directory created by a main creation unit among REST servers according to the present invention.

디렉터리 생성부(122)는 REST API의 자체표현구조(Self-descriptiveness)를 바탕으로 URI를 파싱하여 디렉터리를 재귀 구조로 자동 생성한다. 디렉터리 생성부(122)에 의해 자동으로 생성되는 계층 구조 디렉터리를 도 5에 예시하였다.The directory creation unit 122 automatically creates a directory in a recursive structure by parsing the URI based on the self-descriptiveness of the REST API. A hierarchical directory automatically created by the directory creation unit 122 is illustrated in FIG. 5 .

도 6은 본 발명에 따른 REST 서버 중 등록부의 동작을 설명하기 위한 흐름도이다.6 is a flowchart for explaining the operation of the registration unit of the REST server according to the present invention.

개발자는 개발자 단말장치(300)를 통해 REST API 서비스에 대한 메타정보를 입력한다(S410). 이때, 개발자에 의해 입력되는 메타정보는 타이틀 명, URI, 응답데이터, 작성자, 및 타입을 포함할 수 있다.The developer inputs meta information about the REST API service through the developer terminal device 300 (S410). At this time, the meta information input by the developer may include a title name, URI, response data, author, and type.

개발자 단말장치(300)를 통해 REST API 서비스에 대한 메타정보가 입력되면, 등록부(110)는 데이터베이스(200)에 REST API 서비스에 대한 메타정보를 등록한다(S420). 데이터베이스(200)에 등록된 REST API 서비스에 대한 메타정보는 수정 및 추가될 수 있다.When meta information about the REST API service is input through the developer terminal device 300, the registration unit 110 registers the meta information about the REST API service in the database 200 (S420). Meta information about REST API services registered in the database 200 may be modified and added.

도 7은 본 발명에 따른 REST 서버 중 메인 생성부의 동작을 설명하기 위한 흐름도이다.7 is a flowchart for explaining the operation of the main generation unit of the REST server according to the present invention.

본 실시예에서는, 등록부(110)에 의해 복수의 REST API 서비스에 대한 메타정보가 기등록되어 있음을 전제로 한다. 클라이언트로부터 REST API 서비스의 요청이 입력되거나 혹은 스케줄링에 따른 REST API 서비스가 요청되면, 식별부(121)에서는 해당 URI를 식별한다(S510).In this embodiment, it is assumed that meta information for a plurality of REST API services is pre-registered by the registration unit 110 . When a REST API service request is input from a client or a REST API service according to scheduling is requested, the identification unit 121 identifies a corresponding URI (S510).

식별부(121)에 의해 URI가 식별되면, 디렉터리 생성부(122)에서는 식별된 URI를 분석하여 데이터베이스(200)에 기등록된 REST API 서비스를 기반으로 소스코드 및 디렉터리를 생성한다(S520).When the URI is identified by the identification unit 121, the directory creation unit 122 analyzes the identified URI and creates a source code and directory based on the REST API service previously registered in the database 200 (S520).

소스코드 및 디렉터리가 생성되면, 결정부(123)는 REST API 서비스를 위한 소스 파일을 결정하고(S530), 파일 생성부(124)는 소스 파일에 대한 연결을 위한 라우팅 파일을 생성한다(S540).When the source code and directory are created, the determination unit 123 determines the source file for the REST API service (S530), and the file creation unit 124 creates a routing file for connection to the source file (S540). .

마지막으로, 소스코드 산출부(125)에서 REST API 서비스를 수행하는 소스코드를 산출한다. S510 내지 S540 단계는 메인 생성부(120)에서 이루어지는 동작에 해당한다.Finally, the source code calculation unit 125 calculates the source code for performing the REST API service. Steps S510 to S540 correspond to operations performed in the main generating unit 120 .

도 8은 본 발명에 따른 REST 서버 중 출력부의 동작을 설명하기 위한 흐름도이다.8 is a flowchart for explaining the operation of the output unit of the REST server according to the present invention.

REST API 서비스에 대한 요청이 입력되면(S610). 출력부(130)에서는 라우팅 파일에 의해 S610 단계에서 입력된 요청에 대응하는 REST API 서비스 코드를 로딩한다(S620).When a request to the REST API service is entered (S610). The output unit 130 loads the REST API service code corresponding to the request input in step S610 by the routing file (S620).

S610 단계에서 입력된 요청에 의해 포맷 변환 규칙을 사용하도록 설정된 경우(S630-Y), 출력부는 기등록된 메타정보에 접근하고(S640), 해당 메타정보를 이용하여 포맷 변환을 수행한다(S650). 이후, 출력부(130)는 응답 데이터를 전송한다(S660).If the format conversion rule is set to be used by the request input in step S610 (S630-Y), the output unit accesses pre-registered meta information (S640) and performs format conversion using the corresponding meta information (S650). . Then, the output unit 130 transmits response data (S660).

이러한 동작에 의해, 개발자는 데이터베이스(200)에 REST API 서비스에 대한 메타정보를 등록해두고, 필요에 의해 추가 및 수정할 수 있다. 그러므로, 클라이언트 개발자가 REST API 서비스를 이용할 때, 서버 개발자에게 별도로 요청을 할 필요가 없으므로, 보다 손쉽게 REST API 서비스를 구현할 수 있고, 개발에 소요되는 시간을 단축시킬 수 있다.By this operation, the developer registers the meta information about the REST API service in the database 200, and can add or modify it as needed. Therefore, when a client developer uses the REST API service, there is no need to make a separate request to the server developer, so the REST API service can be implemented more easily and the time required for development can be reduced.

본 발명이 속하는 기술분야의 당업자는 본 발명이 그 기술적 사상이나 필수적 특징을 변경하지 않고서 다른 구체적인 형태로 실시될 수 있다는 것을 이해할 수 있을 것이다. 그러므로, 이상에서 기술한 실시예들은 모든 면에서 예시적인 것이며 한정적인 것이 아닌 것으로서 이해해야만 한다. 본 발명의 범위는 상기 상세한 설명보다는 후술하는 특허청구범위에 의하여 나타내어지며, 특허청구범위의 의미 및 범위 그리고 그 등가 개념으로부터 도출되는 모든 변경 또는 변형된 형태가 본 발명의 범위에 포함되는 것으로 해석되어야 한다.Those skilled in the art to which the present invention pertains will understand that the present invention may be embodied in other specific forms without changing its technical spirit or essential features. Therefore, the embodiments described above should be understood as illustrative in all respects and not limiting. The scope of the present invention is indicated by the following claims rather than the detailed description above, and all changes or modifications derived from the meaning and scope of the claims and equivalent concepts should be construed as being included in the scope of the present invention. do.

100 : REST 서버
110 : 등록부
120 : 메인 생성부
130 : 출력부
200 : 데이터베이스
300 : 복수의 개발자 단말장치
100: REST server
110: register
120: main generating unit
130: output unit
200: database
300: a plurality of developer terminal devices

Claims (14)

REST API(Representational State Transfer Application Program Interface) 서비스에 대한 메타정보를 등록하는 단계;
클라이언트의 요청 및 스케줄링에 대응하는 메타 정보로부터 URI(Uniform Resource Identifier)를 식별하는 단계;
상기 식별된 URI를 분석하여, 상기 등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성하는 단계;
상기 REST API 서비스를 위한 소스 파일을 결정하는 단계;
상기 결정된 소스 파일에 대한 연결을 위한 라우팅 파일을 생성하는 단계;
상기 REST API 서비스를 수행하는 소스코드를 산출하는 단계;
REST API 서비스에 대한 요청이 입력되면, 상기 생성된 라우팅 파일에 의해 상기 요청과 대응하는 REST API 서비스 코드를 로딩하는 단계; 및
상기 REST API 호출에 대한 응답 데이터를 전송하는 단계;를 포함하고,
상기 소스 파일을 결정하는 단계에서, 상기 URI의 최외측 리프 노드(leaf node)를 상기 소스 파일로 결정하며,
상기 생성되는 라우팅 파일은 route.urls의 형식인 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법.
Registering meta information for a REST API (Representational State Transfer Application Program Interface) service;
identifying a Uniform Resource Identifier (URI) from meta information corresponding to a client's request and scheduling;
Analyzing the identified URI and generating a source code and directory based on the registered REST API;
determining a source file for the REST API service;
generating a routing file for connection to the determined source file;
Calculating source code for performing the REST API service;
If a request for a REST API service is input, loading a REST API service code corresponding to the request by the generated routing file; and
Transmitting response data for the REST API call; Including,
In the step of determining the source file, determining the outermost leaf node of the URI as the source file;
The method of automatically generating a virtual REST API service for developing a REST API client, characterized in that the generated routing file is in the form of route.urls.
제 1 항에 있어서,
상기 메타정보를 등록하는 단계는, 상기 REST API 서비스에 대한 상세정보를 작성하고 등록하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법.
According to claim 1,
The step of registering the meta information is a virtual REST API service automatic generation method for developing a REST API client, characterized in that for creating and registering detailed information on the REST API service.
삭제delete 삭제delete 제 1 항에 있어서,
상기 로딩하는 단계 이후,
포맷 변환 규칙을 사용하도록 설정된 경우, 상기 로딩된 REST API 서비스 코드를 이용하여 상기 등록된 메타정보에 접근하는 단계; 및
상기 메타정보로부터 기설정된 규칙에 의해 포맷 변환을 수행하는 단계;를 더 포함하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법.
According to claim 1,
After the loading step,
accessing the registered meta information using the loaded REST API service code when it is set to use a format conversion rule; and
The method of automatically generating a virtual REST API service for developing a REST API client, further comprising: performing format conversion from the meta information according to a preset rule.
제 1 항에 있어서,
상기 디렉터리를 생성하는 단계는, 상기 등록된 REST API의 자체표현구조(Self-descriptiveness)를 바탕으로 상기 URI를 파싱하여 상기 디렉터리를 재귀 구조로 자동 생성하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법.
According to claim 1,
In the step of creating the directory, the directory is automatically created in a recursive structure by parsing the URI based on the Self-descriptiveness of the registered REST API. How to automatically create a REST API service.
제 1 항에 있어서,
상기 라우팅 파일을 생성하는 단계는, 하나의 라우팅 파일에 전체 REST API 서비스에 대한 라우트를 작성하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 방법.
According to claim 1,
The step of generating the routing file is a method of automatically generating a virtual REST API service for developing a REST API client, characterized in that for creating a route for the entire REST API service in one routing file.
REST API 서비스에 대한 메타정보를 등록하는 등록부; 및
클라이언트의 요청 및 스케줄링에 의해 REST API 서비스를 수행하는 소스코드를 산출하는 메인 생성부;를 포함하고,
상기 메인 생성부는,
상기 클라이언트의 요청 및 스케줄링에 대응하는 메타 정보로부터 URI(Uniform Resource Identifier)를 식별하는 식별부;
상기 식별된 URI를 분석하여 상기 등록된 REST API를 기반으로 소스코드 및 디렉터리를 생성하는 디렉터리 생성부;
상기 REST API 서비스를 위한 소스 파일을 결정하는 결정부;
상기 결정된 소스 파일에 대한 연결을 위한 라우팅 파일을 생성하는 파일 생성부;
상기 REST API 서비스를 수행하는 소스코드를 산출하는 소스코드 산출부; 및
REST API 서비스에 대한 요청이 입력되면, 상기 생성된 라우팅 파일에 의해 상기 요청과 대응하는 REST API 서비스 코드를 로딩하고, 상기 REST API 호출에 대한 응답 데이터를 전송하는 출력부;를 포함하고,
상기 결정부는, 상기 URI의 최외측 리프 노드(leaf node)를 상기 소스 파일로 결정하며,
상기 파일 생성부에 의해 생성되는 라우팅 파일은 route.urls의 형식인 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버.
A registration unit that registers meta information about REST API services; and
A main generator that calculates a source code for performing a REST API service by a client's request and scheduling; includes,
The main generator,
an identification unit that identifies a URI (Uniform Resource Identifier) from meta information corresponding to the client's request and scheduling;
a directory creation unit that analyzes the identified URI and creates a source code and directory based on the registered REST API;
a determination unit for determining a source file for the REST API service;
a file creation unit generating a routing file for connection to the determined source file;
a source code calculation unit for calculating source code for performing the REST API service; and
When a request for the REST API service is input, an output unit for loading a REST API service code corresponding to the request by the generated routing file and transmitting response data to the REST API call;
The determining unit determines an outermost leaf node of the URI as the source file;
The virtual REST API service automatic creation server for REST API client development, characterized in that the routing file generated by the file creation unit is in the form of route.urls.
제 8 항에 있어서,
상기 등록부는, 상기 REST API 서비스에 대한 상세정보를 작성하고 등록하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버.
According to claim 8,
The registration unit, virtual REST API service automatic generation server for developing a REST API client, characterized in that for creating and registering detailed information on the REST API service.
삭제delete 삭제delete 제 8 항에 있어서,
상기 출력부는, 상기 REST API 서비스 코드를 로딩한 후, 포맷 변환 규칙을 사용하도록 설정된 경우, 상기 로딩된 REST API 서비스 코드를 이용하여 상기 등록된 메타정보에 접근하고, 상기 메타정보로부터 기설정된 규칙에 의해 포맷 변환을 수행하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버.
According to claim 8,
The output unit, after loading the REST API service code, accesses the registered meta information using the loaded REST API service code, if it is set to use a format conversion rule, and uses the meta information to a predetermined rule. A virtual REST API service automatic generation server for developing a REST API client, characterized in that performing format conversion by.
제 8 항에 있어서,
상기 디렉터리 생성부는, 상기 등록된 REST API의 자체표현구조를 바탕으로 상기 URI를 파싱하여 상기 디렉터리를 재귀 구조로 자동 생성하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버.
According to claim 8,
The directory creation unit parses the URI based on the self-expression structure of the registered REST API and automatically creates the directory in a recursive structure.
제 8 항에 있어서,
상기 파일 생성부는, 하나의 라우팅 파일에 전체 REST API 서비스에 대한 라우트를 작성하는 것을 특징으로 하는 REST API 클라이언트 개발을 위한 가상 REST API 서비스 자동 생성 서버.
According to claim 8,
The file generation unit, virtual REST API service automatic generation server for developing REST API clients, characterized in that for creating a route for the entire REST API service in one routing file.
KR1020230027878A 2023-03-02 2023-03-02 Automated rest api service creation for rest api client development, and method thereof KR102563179B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
KR1020230027878A KR102563179B1 (en) 2023-03-02 2023-03-02 Automated rest api service creation for rest api client development, and method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020230027878A KR102563179B1 (en) 2023-03-02 2023-03-02 Automated rest api service creation for rest api client development, and method thereof

Publications (1)

Publication Number Publication Date
KR102563179B1 true KR102563179B1 (en) 2023-08-03

Family

ID=87567857

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020230027878A KR102563179B1 (en) 2023-03-02 2023-03-02 Automated rest api service creation for rest api client development, and method thereof

Country Status (1)

Country Link
KR (1) KR102563179B1 (en)

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027094A (en) * 2012-08-22 2015-03-11 엘지전자 주식회사 Method for addressing node address for device management and apparatus therefor
KR20180077839A (en) * 2016-12-29 2018-07-09 주식회사 와이즈넛 Method for providing REST API service to process massive unstructured data
KR20180120203A (en) * 2016-02-26 2018-11-05 노키아 솔루션스 앤드 네트웍스 오와이 Cloud validation and test automation
KR20190118913A (en) * 2018-04-11 2019-10-21 한국전자통신연구원 Apparatus and method for converting metadata
KR102411296B1 (en) * 2020-12-30 2022-06-22 한국전자기술연구원 Method for providing semantic REST API
KR102417742B1 (en) 2021-09-08 2022-07-06 비엠텍시스템 주식회사 API Data Aggregation System And Method Of The Same

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150027094A (en) * 2012-08-22 2015-03-11 엘지전자 주식회사 Method for addressing node address for device management and apparatus therefor
KR20180120203A (en) * 2016-02-26 2018-11-05 노키아 솔루션스 앤드 네트웍스 오와이 Cloud validation and test automation
KR20180077839A (en) * 2016-12-29 2018-07-09 주식회사 와이즈넛 Method for providing REST API service to process massive unstructured data
KR20190118913A (en) * 2018-04-11 2019-10-21 한국전자통신연구원 Apparatus and method for converting metadata
KR102411296B1 (en) * 2020-12-30 2022-06-22 한국전자기술연구원 Method for providing semantic REST API
KR102417742B1 (en) 2021-09-08 2022-07-06 비엠텍시스템 주식회사 API Data Aggregation System And Method Of The Same

Similar Documents

Publication Publication Date Title
US20190325074A1 (en) Application programing interface document generator
US7756905B2 (en) System and method for building mixed mode execution environment for component applications
US9323519B2 (en) Packaging an application
JP2005505051A (en) Distributed program execution method based on file type relationship in client-server network
Moreews et al. BioShaDock: a community driven bioinformatics shared Docker-based tools registry
MXPA05002276A (en) System and method for building wireless applications with intelligent mapping between user interface and data components .
US9536212B2 (en) Web browser-based business process management engine
US20190188049A1 (en) Apparatus and method to select services for executing a user program based on a code pattern included therein
US7877488B1 (en) Automatic set up for editing a web site
CN110750243A (en) Project code development method and system
CN110795649A (en) Target page display method, device and system and electronic equipment
KR102563179B1 (en) Automated rest api service creation for rest api client development, and method thereof
US20060026260A1 (en) Method of communicating between web applications and local client application while maintaining remote user session
US10169478B2 (en) Optimize data exchange for MVC-based web applications
Kyryk et al. Infrastructure as Code and Microservices for Intent-Based Cloud Networking
US11288322B2 (en) Conversational agents over domain structured knowledge
CN113918525A (en) Data exchange scheduling method, system, electronic device, medium, and program product
Patni API Design and Modeling
US11677822B2 (en) Portal management
US20200092385A1 (en) Information provision control system and information provision control method
US20060031498A1 (en) Service-process providing system and service-process providing method
Mena et al. Assembling the Web of Things and Microservices for the Management of Cyber-Physical Systems.
Sánchez-Cartagena et al. ScaleMT: a free/open-source framework for building scalable machine translation web services
Pinnis Modern Website Development with Strapi and Next. js
Varanasi et al. Hateoas

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant