7 storage APIs every developer should investigate
Software developers plan ahead to offer new capabilities to their applications efficiently and at low cost, benefiting users and the company. One way to add new functionality without having to become an expert in every little thing is by using an application programming interface (API) to another product.
APIs let you take advantage of another developer's efforts. Someone else figured out how to solve a programming problem so you don’t have to do it yourself, whether the task is integrating your application with Slack or displaying NASA’s photo of the day on your website. If you use a published API, you don’t have to develop that expertise in-house yourself, and you can roll its capabilities into your own software—including enhancements over time. The API is maintained by developers who know their own product's features and how best to use those features.
Meanwhile, your own challenge is to securely store and access the data your own company acquires and needs to manage. Your data, and that of your customers, is the quintessential result from the use of your software, and it’s important to enable accessibility without size and speed limits. That’s especially so in an era in which big data and analytics influence application design.
Storage is no longer just a matter of data warehousing and archiving. Information must be accessible, usable, movable, and use automated technology to add speed. But deciding on the exact location of that place is now a relevant discussion item. Should that place be in your own backyard on local servers accessible by a laptop or a mobile device? Should it be offsite in third-party-run data centers in the cloud? Most developers choose a hybrid solution.
Moving to all-flash? Top six critical considerations for moving to an all-flash data center.
That makes APIs that open up storage technologies far more interesting. For storage technology companies, their bread and butter comes from simplifying their customers’ access to their products. The storage companies, the user communities (including those with open source development talents), or other providers wrote the APIs for you, keeping them simple, debugged, and well documented.
A tremendous number of APIs are available, but the industry is herding them into the standardization corral with the OpenAPI Initiative (OAI), REX-Ray, and other standards. Another trend to watch, as the number and capabilities of APIs increase, is the development of API management platforms.
As you consider a storage API, you’ll appreciate that they introduce new processes or streamline existing ones, such as relying on a single user authentication scheme (rather than building one’s own logins), offer upsell and monetization opportunities, and give you metrics analysis for understanding how best to service your customers.
However, there are a lot of choices! Let's explore your storage options and take a gander at the future.
Only until recently has "storage" meant more than "backup," and there are companies working on reinventing what "enterprise backup" means. It now means access to your data and the history of how and who used it anywhere, by any device, and only by whom you specify.
Initially, I tried to segment these storage APIs into clear categories. However, I discovered a great deal of functionality overlap; after all, ultimately, it’s a process of storing and retrieving ones and zeros. Still, familiarizing oneself with storage APIs is a useful way to consider the benefits you might build into your software, in order to extend its features (particularly when Internet access is unreliable) and help you deliver quality software on time.
Cloud storage APIs
These services enable developers to store data in the cloud, relying on the authentication and other access features that control who can get to the data. For instance, a mobile scanning application can be programmed to save scanned documents on Dropbox instead of a developer creating a new online resource for users to log into.
Companies are always concerned about the cost of private or public cloud storage, as part of an ongoing dialogue about building a hybrid IT infrastructure that also factors in security concerns and innate flexibility (perhaps the word used should be changeability).
These APIs bridge local systems with cloud storage. The key is to avoid getting your data trapped by a vendor in a way that makes moving your data to a different service difficult and costly. Companies like Amazon, Google, Microsoft, Box, and Dropbox have relatively open policies. These leaders in cloud storage are perhaps obvious, but the functionality they offer is decent and they are stable financially.
Amazon S3 provides massive scalable and cost-effective cloud storage, and it houses a huge amount of data. The service is designed to handle large uploads, transfers, and queries. It has been around since 2006 and is considered an industry leader; Amazon S3 commands twice the market share of all its closest competitors combined. Data is distributed across a minimum of three data centers. Growing companies, of any size, are drawn to Amazon's pay-as-you-go pricing. For development, Amazon strives to be programming-language neutral. The API comes in REST and SOAP versions, but the company is beginning to leave the SOAP API dormant, meaning new S3 features will not be supported.
Amazon also has an API gateway, a helpful service for third parties looking to use Amazon's APIs or seeking the tools to write and publish their own. Before beginning to build your own API, check the gateway. Your work might already have been done for you.
Google's Cloud Storage API
Working with Google gives a developer access to the company’s experience in scalability and security. This is a company that knows how to play with others. Plenty of services on which your application may rely (such as payment processors) have connectors with Google Cloud Storage.
Google offers two versions: an XML API and a JSON API. Its API has two types of calls: one to connect and manage cloud storage, and the other to import and export data to and from a connected cloud account. According to Google, with its Cloud Storage API, your data is replicated to multiple data centers and offers excellent data consistency. And you can access any amount of your data (even hundreds of gigabytes in size per request) at any time. The downsides: Some find Google's storage APIs a bit complex, and understanding its pricing scheme also takes some effort.
Box and Dropbox APIs
Box and Dropbox have similar offerings: web-based storage, syncing, and sharing for photos, documents, and other files. They both operate on a freemium platform. They also both integrate with Microsoft Office as well as other cloud applications.
Another thing that Box and Dropbox have in common is excellent APIs for cloud-based storage. Where Amazon S3 and Google Storage expect you to manage your own storage architecture, Box and Dropbox act more like a remote file system. For example, you could use their APIs to capture local data (which you might tag or otherwise categorize based on business rules) and store it remotely in the right cloud application. A developer’s mobile app could use the API to enable an end user to find or share files.
Note that you can't host dynamic websites, only static ones.
Media storage APIs
Media storage comes with strong file management of photos, videos, and video. This storage should be closely linked with file creation applications such as image, video, and audio editors. The main benefit is speed. By linking media storage directly to your creative software, you can dramatically simplify workflow and file tracking.
Adobe Creative Cloud API
YouTube Data API
Video is certainly an important type of data to store and access. YouTube's API is invaluable when integrating video into applications—especially since you can store the video in the cloud. The API permits you to perform all sorts of tasks, including uploading content and managing playlists and subscriptions, and search functionality is built in. YouTube has limits on storage. If you hit the limit, Google stops returning results until your quota is reset. You can apply for more than a million requests per day, but you have to pay for those extra requests. Some might argue that this is a positive in some ways because it encourages you to manage files to avoid bloat and keep your channel modern. If you have petabytes of video files, you should have been decluttering your files long ago.
Filestack's approach to storage management is to act as a go-between—between large cloud storage vendors and file management tools—providing a "developer service" for file uploads that, the company claims, can be accomplished in only a few lines of code. That means you can upload and store large files, as well as transform and manipulate various file types. It works off an internally managed S3 bucket. Services supported include more than 20 cloud services, such as Amazon, Google, Microsoft, and Dropbox. In addition, Filestack helps you edit images in bulk, transcode audio, and extract audio from video.
Software developers should consider storage services that are extended by APIs when their applications need to offer content creation and access, trend and market analysis, and the quick implementation of new data management features in software. An API is an excellent indicator of where storage companies see the market and themselves growing; you can see what they're prioritizing and how your company fits.
This article/content was written by the individual writer identified and does not necessarily reflect the view of Hewlett Packard Enterprise Company.
Lisa Nadile is a technologist who loves learning new technology and helping others use it.