Files

Download

Download Full Text (1.7 MB)

Abstract

Capital One has embarked on a journey of exposing useful services as RESTful APIs that can be utilized seamlessly by applications and clients. The purpose of this project was to develop an API framework that can be easily molded and deployed to reinforce this endeavor, standardizing the access and use of these services for every developer. This framework was built with a modern programming language, Golang, and excels in performance, scalability, and efficiency. A working prototype and proof of concept serve as the deliverables for this project, with notable constraints in the type of architecture (REST) used for the framework as well as the programming language (Golang) used to create it. An existing framework, GoRestful, was used as a foundation for the project, with the team adding three key features to address important crosscutting concerns. Versioning, the capability to separate and specify different versions of a given service, was achieved through the creation of custom headers to indicate which version of the resource was requested. Aspect oriented programming, the power to modify the behavior of existing code without directly modifying it, was accomplished by wrapping customized functions with the existing logic of the framework. Dependency management, the capacity to streamline and handle dependencies on external modules, was addressed by integrating the GoDep library which manages the project’s dependencies through simple commands. This project elucidates a design to standardize and simplify the use of web services through a solid API framework built on a cutting edge programming language.

Publication Date

2016

Keywords

Computer engineering, Golang, RESTful, API, Crosscutting concerns

Disciplines

Computer Engineering | Engineering

Faculty Advisor/Mentor

Robert Dahlberg

Faculty Advisor/Mentor

Abhi Ghosh

VCU Capstone Design Expo Posters

Rights

© The Author(s)

Date of Submission

August 2016

RESTful API Framework: Golang Proof of Concept

Share

COinS