Application Development: API as a modern service approach
API turns a service into a platform
Nowadays, largest commercial services, such as Twitter, LinkedIn, Facebook, provides API for their models and services. They opened their platforms to be extended by huge community of software developers around the world. If one user of a service costs one unit, then single developer contributing into the architecture has value ten times more. This is true for full range of Application Development approaches from simple customization scripts to huge business based on complicated systems. API and its ability to extend and create attracts and even inspire the most creative specialists. This is a two-way street. On the one hand, developers and entrepreneurs have ability to grow up their own ideas into a successful business using existing cool service and its community of users, on the other hand, a service may acquire additional features without extra efforts. Users or hired API developers would design and implement specific features for their own needs. API looks like one more communication channel between customers, service and community as a whole. It is a way to show what they really need. API is a next-level step in the project evolution. It is a point where system may become a platform rather than just a service.
Internet of things
Internet of things is a new trend in IT. It is the case when we talk about machine or system is connecting to the server or another software instead of real user. There are robots, smart gadgets and regular computers. It is not the whole list of such examples. Modern Application Development should be able to provide suitable interface for both the man and the machine, meaning a program running in another process or system installed on another continent.
OAuth and additional information
Social networks provides ability to integrate authentication via their huge base of users for third-party services. On the other hand, users may avoid a double login process on services they need by passing only authentication on the social network only. In this case, a custom service obtains additional information about a user, he or she granted access for, like age, gender, interests, friends, etc. Such information is very important for any business at line of marketing.
REST as API standard in Web
Technically, API may be integrated into the client application as module compiled into solution, be accessed via one of IPC methods on the same system locally, or be connected via network. In case of Web Application Development, we have to stick to third variant. REST [https://en.wikipedia.org/wiki/Representational_state_transfer] is trend technology to design and implement API from scratch or integrate into existing domain model. By HTTP protocol using, it treats HTTP’s request verbs (GET, POST, PUT, DELETE) as actions should be applied against objects addressed in the query string of HTTP request. Data is going between client and server may be represented in any suitable format, like JSON, XML or even plain text or pure binary. All main web development platforms and even micro frameworks provides well-known libraries to implement REST interface, write tests for it and run UI console to debug all its end-points.