API Posts

The Toptal Engineering Blog is a hub for in-depth development tutorials and new technology announcements created by professional software engineers in the Toptal network.
Alexander Zinchuk
5 Things You Have Never Done with a REST Specification

The existence of RESTful APIs is a popular myth in web development—but it’s a myth we can work with. The right tools can help keep documentation consistent and streamline automated testing. In this article, Toptal Freelance JavaScript Developer Alexander Zinchuk explores several time-saving approaches to developing REST APIs, with examples in Node.js and Ruby on Rails.

Continue reading →
Sebastian Schocke
How to Do JWT Authentication with an Angular 6 SPA

JSON web tokens (JWTs) provide a method of authenticating requests that’s convenient, compact, and secure. More often than not, Angular apps will include them in their data flows.

In this tutorial, Toptal Freelance Software Engineer Sebastian Schocke shows how to implement JWT authentication in an Angular 6 single-page application (SPA), complete with a Node.js back-end.

Continue reading →
Fahad Munawar
Salesforce Einstein AI: An API Tutorial

Non-Salesforce app developers may be overlooking a hidden gem in the AI world: Salesforce Einstein offers image recognition and text analysis for plain-vanilla apps and Salesforce apps alike. In this article, Toptal Freelance Salesforce Developer Fahad Munawar Khan shows how any any developer can leverage Einstein Vision and Einstein Language.

Continue reading →
Fahad Munawar
No-Fuss AI for Your App: Meet Salesforce Einstein

The AI revolution is transforming the consumer world. Some developers may shy away from AI, which has traditionally been a heavily technical specialty. In this article, Toptal Freelance Salesforce Developer Fahad Munawar Khan explores how accessible to developers the AI cloud has become, even for non-Salesforce apps, with Salesforce Einstein.

Continue reading →
Dusan Simonovic
Get Started With Microservices: A Dropwizard Tutorial

Dropwizard allows developers to quickly bootstrap their projects and package applications as easily deployable standalone services. It also happens to be relatively simple to use and implement.

In this tutorial, Toptal Freelance Software Engineer Dusan Simonovic will introduce you to Dropwizard and demonstrate how you can use this powerful framework to create RESTful web services with ease.

Continue reading →
Alexander Gaidukov
How to Isolate Client-Server Interaction Logic in iOS Applications

Client-server interactions play a vital role in most modern mobile applications. By leveraging available backend services these mobile applications can provide some really amazing functionalities. However, as mobile applications grow complex it becomes essential to keep the networking module as clean and maintainable as possible - separated from the rest of the application logic.

In this article, Toptal freelance software engineer Alexander Gaidukov walks us through the design of a simple networking module that allows your iOS application to interact with RESTful APIs.

Continue reading →
Boško Ivanišević
How Sequel and Sinatra Solve Ruby’s API Problem

The rise of the web and mobile applications has led to an increased need for back-end API services. Ruby on Rails’ philosophy seemingly makes it the ideal framework for creating back-end APIs. However, using Rails only for the API is overkill.

In this article, Freelance Software Engineer Boško Ivanišević explores alternatives to Rails and introduces us to two very mature and powerful gems, Sinatra and Sequel, which in combination provide powerful tools for creating server-side APIs.

Continue reading →
Behsaad Ramez
Social Network APIs: The Internet’s Portal to the Real World

Social networks are a rich source of user information. From a person’s current mood to endless streams of photos, there is by now probably a social network for each aspect of human life. From the development side, access to users’ information can be an essential element in providing a truly personalized experience in any application.

In this article, Toptal Freelance Software Engineer Behsaad Ramez shows us how the APIs of some of these social networks stack against each other and how they may be leveraged to accumulate precious information about users.

Continue reading →
Leandro Lima
Building a Rest API with the Bottle Framework

REST APIs have become a common way to establish an interface between web back-ends and front-ends, and between different web services. The simplicity of this kind of interface, and the ubiquitous support of the HTTP and HTTPS protocols across different networks and frameworks, makes it an easy choice when considering interoperability issues.

Bottle is a minimalist Python web framework. It is lightweight, fast, and easy to use, and is well-suited to building RESTful services. In this article, I’ll provide a walkthrough of how to build a RESTful API service using Bottle.

Continue reading →
Arminas Zukauskas
Building REST API for Legacy PHP Projects

Every once in a while PHP developers are charged with tasks that require them to extend the functionalities of legacy projects, a task that often includes building REST APIs. Building a REST API for PHP-based projects is challenging, but in the absence of proper frameworks and tools, it can also be a particularly difficult goal to get right. In this article, Toptal engineer Arminas Zukauskas shares his advice, with sample code, on how to build a modern structured REST API around existing legacy PHP projects.

Continue reading →
Nermin Hajdarbegovic
A Brief Overview Of Vulkan API

Here’s the Vulkan API in a hundred words or less: It’s a low-overhead, close-to-metal API for 3D graphics and compute applications. Vulkan is basically a follow-on to OpenGL. It was originally referred to as the “next generation OpenGL initiative,” and it includes a few bits and pieces from AMD’s Mantle API. Vulkan is supposed to provide numerous advantages over other GPU APIs, enabling superior cross-platform support, better support for multithreaded processors, lower CPU load, and a pinch of OS agnosticism.

Continue reading →
Jovan Jovanovic
Let LoopBack Do It: A Walkthrough of the Node API Framework You've Been Dreaming Of

While Ruby has Rails and Python has Django, the dominant application development framework for Node has yet to be established. But, there is a powerful contender gaining steam: LoopBack, an open source API framework built by StrongLoop, the creators of Express.

Let’s take a closer look at LoopBack and it’s capabilities by turning everything into practice and building an example application.

Continue reading →
Oleksii Rytov
Why I Decided To Embrace Laravel

Laravel designers didn’t spend too much time reinventing the wheel. A lot of solutions and practices are transferred from other frameworks.

The decision to embrace a new PHP framework should not be taken lightly, so let’s examine why considering Laravel may be worth your time and effort. Toptal freelance software engineer Alex Rytov explains what made him take the plunge and why he believes Laravel has a bright future.

Continue reading →
Jordan Ambra
5 Golden Rules for Great Web API Design

Web services and their APIs abound. Unfortunately, the vast majority are difficult to use. Reasons range from poor design, to lack of documentation, to volatility, to unresolved bugs, or in some cases, all of the above.

Follow the guidance in this post to help ensure that your web API is clean, well-documented, and easy-to-use. Such APIs are truly rare and are therefore much more likely to be widely adopted and used.

Continue reading →
Denis Kyorov
Django, Flask, and Redis Tutorial: Web Application Session Management Between Python Frameworks

I love and use Django in lots of my personal and client projects, mostly for those involving relational databases and more classical web applications. However, by design, Django is very tightly coupled with its ORM, Template Engine System, and Settings object. Plus, it’s not a new project: it carries a lot of baggage from the past to remain backwards compatible.

In a few of my client projects, we’ve chosen to give up on Django and use a micro framework like Flask, typically when the client wants to do some interesting stuff with the framework. At the same time, we often need user registration, login, and more, all of which is easily handled with Django.

The question emerged: is Django an all-or-nothing deal? Should we drop it completely from the project, or is there a way to combine some it with the flexibility of other frameworks?

Continue reading →