RESTful API - Best Practices.

Video thumbnail (Frame 0) Video thumbnail (Frame 1241) Video thumbnail (Frame 1711) Video thumbnail (Frame 2601) Video thumbnail (Frame 4634) Video thumbnail (Frame 5774) Video thumbnail (Frame 6555) Video thumbnail (Frame 7944) Video thumbnail (Frame 9234) Video thumbnail (Frame 10274) Video thumbnail (Frame 11187) Video thumbnail (Frame 11693) Video thumbnail (Frame 12384) Video thumbnail (Frame 13212) Video thumbnail (Frame 13781) Video thumbnail (Frame 14445) Video thumbnail (Frame 15293) Video thumbnail (Frame 16145) Video thumbnail (Frame 17301) Video thumbnail (Frame 17789) Video thumbnail (Frame 18264) Video thumbnail (Frame 18930) Video thumbnail (Frame 19945) Video thumbnail (Frame 21581) Video thumbnail (Frame 22633) Video thumbnail (Frame 24178) Video thumbnail (Frame 25012) Video thumbnail (Frame 25738) Video thumbnail (Frame 26561) Video thumbnail (Frame 27029) Video thumbnail (Frame 28720) Video thumbnail (Frame 29546) Video thumbnail (Frame 30485) Video thumbnail (Frame 31366)
Video in TIB AV-Portal: RESTful API - Best Practices.

Formal Metadata

RESTful API - Best Practices.
Title of Series
Part Number
Number of Parts
CC Attribution - NonCommercial - ShareAlike 3.0 Unported:
You are free to use, adapt and copy, distribute and transmit the work or content in adapted or unchanged form for any legal and non-commercial purpose as long as the work is attributed to the author in the manner specified by the author or licensor and the work or content is shared also in adapted form only under the conditions of this license.
Release Date

Content Metadata

Subject Area
Malwina Nowakowska - RESTful API - Best Practices. It is important to understand from the beginning how model API should look like. Do not repeat your friends’ mistakes and make developers upset! There are some simple rules that can make your API cooler - clean, safe and efficient. Based on both bad and good examples of REST APIs (I had to deal with) we will learn about best practices. ----- Nowadays building and integrating with Representational State Transfer web services is a very common thing. It seems that creating RESTful API is trivial - nothing could be more wrong. In my previous projects I had to integrate with lots of APIs. Unfortunately only some of them were easy to work with. Most of the APIs did not follow the main rules of model API. It is really important to understand how model REST API should look like. To make developers happy we will learn best practices of creating REST API from the beginning. We will start with quick introduction what REST is, why principle of REST is so amazing, talk about identifires and explain some key terms. We will discuss about architectall constraints and properties. Mistakes and best practices are based on my experience of developing and maintaining the projects. After this talk you will be able to create model RESTful API developers will be happy to work with.
Web page Software developer Lecture/Conference Personal digital assistant Shared memory Thermal expansion Representational state transfer Line (geometry) Extension (kinesiology)
Computer animation INTEGRAL Multiplication sign Projective plane Right angle
Functional (mathematics) Computer animation Meeting/Interview State of matter Event horizon Task (computing)
Point (geometry) Type theory Computer animation Information Meeting/Interview Telecommunication View (database) Range (statistics) Object (grammar) Event horizon Field (computer science) Power (physics)
Addition Process (computing) Computer animation Link (knot theory) Multiplication sign Internet service provider Database Event horizon Task (computing) Window
Point (geometry) Web page Enterprise architecture Hoax Integrated development environment Multiplication sign Software testing Database Instance (computer science) IP address Resultant Product (business)
Point (geometry) Game controller Computer animation INTEGRAL Civil engineering ACID Data structure Event horizon
Presentation of a group Server (computing) Constraint (mathematics) Client (computing) Representational state transfer Hypermedia Computer animation World Wide Web Telecommunication Software System programming Right angle Software architecture Software architecture Physical system
User interface Dependent and independent variables Server (computing) Constraint (mathematics) Server (computing) Connectivity (graph theory) Constructor (object-oriented programming) Data storage device Code Client (computing) Division (mathematics) Client (computing) Cartesian coordinate system Flow separation Product (business) Web service Computer animation Interface (computing) Software architecture Physical system Physical system
Context awareness Server (computing) Multiplication Group action Dependent and independent variables Constraint (mathematics) Information Dependent and independent variables State of matter Multiplication sign Client (computing) Client (computing) Event horizon Frequency Mathematics Message passing Web service Computer animation Software Information Right angle Sanitary sewer
Presentation of a group State of matter Multiplication sign Source code Design by contract Hypermedia Message passing Descriptive statistics Multiplication Gateway (telecommunications) Information Firewall (computing) Server (computing) Gradient State of matter Client (computing) Cartesian coordinate system Cache (computing) Message passing Hypermedia Computer animation Software Vector space Uniformer Raum Web service Telecommunication Interface (computing) Representation (politics) Physical system
Scripting language Server (computing) Functional (mathematics) Constraint (mathematics) Server (computing) Computer program Code Client (computing) Web browser Heat transfer Client (computing) Scalability Component-based software engineering Computer configuration Computer animation Telecommunication Computer configuration Web service Interface (computing) Energy level Physical system
Area Group action Constraint (mathematics) Mapping Constraint (mathematics) Model theory GUI widget Representational state transfer Food energy Neuroinformatik Web service Hypermedia Computer animation Vector space Web service Order (biology) Statement (computer science) Right angle Energy level Endliche Modelltheorie Logic gate World Wide Web Consortium
Order (biology) Set (mathematics) Mathematical analysis Database Data structure Resultant
Finitismus Patch (Unix) Personal digital assistant Operator (mathematics) Personal digital assistant Parameter (computer programming) Quicksort Convolution
Reading (process) Event horizon Computer animation Patch (Unix) Summierbarkeit Electronic mailing list Event horizon Food energy Resultant
Default (computer science) Presentation of a group Dependent and independent variables Theory of relativity Information Patch (Unix) Connectivity (graph theory) Electronic mailing list Element (mathematics) Goodness of fit Event horizon Computer animation Bit rate Object (grammar)
Area Dependent and independent variables Meeting/Interview Code Personal digital assistant Projective plane Error message Code
Logical constant Digital filter Context awareness Information Dependent and independent variables Multiplication sign Sound effect Incidence algebra Parameter (computer programming) Representational state transfer Surgery Attribute grammar Wave packet Arithmetic mean Event horizon Vector space Semiconductor memory Quicksort Family Quicksort Physical system
Covering space Group action Cellular automaton Multiplication sign Sheaf (mathematics) Coma Berenices Representational state transfer Group action Revision control Order (biology) Computer animation Personal digital assistant Authorization Website Summierbarkeit Exception handling Form (programming)
Web page Dependent and independent variables Building Link (knot theory) Overhead (computing) Length Maxima and minima Range (statistics) Coma Berenices Content (media) Counting Sign (mathematics) Mathematics Event horizon Computer animation Right angle Resultant
Server (computing) Email Message passing Dependent and independent variables Telecommunication Data type
Logical constant Dependent and independent variables Vapor barrier Constraint (mathematics) Link (knot theory) State of matter Multiplication sign Cartesian coordinate system Event horizon Message passing Computer animation Root Statement (computer science) Address space
Point (geometry) Group action Dependent and independent variables Software developer Cellular automaton View (database) Execution unit Student's t-test Mereology Telecommunication Core dump Arithmetic progression Position operator Social class
Point (geometry) Dependent and independent variables Link (knot theory) Code Multiplication sign Source code Mereology Metadata Formal language Game theory Endliche Modelltheorie Figurate number Reading (process)
than start with the the rest fullest BI was proteases by Monday don't um this Q fever our share of the bowls without B while some of the ideas and money not and develop the and as extension because think work was year almost spent years ago and it was my 1st line of the and this from my page and Jeremy and the kind and what I'm really hygienic I kind of grew expansion activate antigen or or in the name and case so
let's begin with a short story some time ago and 1 of my
previous project I had to make a many integrations with land rights and each of them have very different than that of API they're working on which
was obtained together for over many kinds of events from many supplier and the beginning of the talk is implemented into Western with and provide an hour of that
task was to implement a simple such that they 8 on and the end point for searching was limited maybe I provided that of actually searching by the state or text so that the consolidation of printed on their way decided to develop the same functionalities
wives working on it we wanted to see that it is better to get to know that the API and fact that the 1st minorities in the phrase of the 1st surprised was fact that they didn't have pagination so in reserve we have to store all the data on kind that other than the communication analysts so helpful besides the fact that this was really had to find and the information is this information was incomplete for example there was no info about with object type which started to make sense after noticing that the return object types and not consistent something could on on and then I thought that was affected the power of and data and objects for the n-gram events and trained with date range of x from our field point of view this this was the fact that we didn't display devices and their lives you this information was and we found by and for searching and calling to the other end point 4 or 8 our event would be too expensive
some of the 1st French we developed something like that the chair of the
art and improving the experience our next next task was an enriching searching we wanted to add veteran conservative that events the API provider wasn't it is offered as such complicated features so try to discuss with you decided to store only time in our database we developed a cron jobs that way down on the events in evidence and make additional advantage of this approach was found particularly could also Sundaland appliances make a link on the edge other
friends since the goal but it was a economy from the the
problem appeared when the point of enterprises and this has started using in on the although kind instances it was a typical NBA provided wasn't prepared for for so many kinds so they didn't get the quantities and in ways that they spend our IP address after detection of this bond as another kind of and then there is a
belligerent but was found they didn't have this environment then the outcome of this was this small that the 1st of all there was so many fake debate on production like specially emoluments specially prepared for testing buying that it has to spend time on the side of the kind whereas on our results page they tell us more exposed on something to add value to is prevent by the advocates our HIT was struck this when you want it to already other features we needed to test buying architects so API provided database passed on their local and the API key unfortunately some misunderstanding of your and they are not wearing a Yankees we find out
when post control of this 1 this before a and the acid during integration
with another provide the most surprising players you're and then there are very and in the to get the events you have to go through special consideration and points and and endpoints lowest performance in In of me so I just said to myself again and the men of mention of it so also the structure was so messy under the a distinction I was developed to about understanding the kinds we spent about the following to get civility and to map the basic structure of events to our lives but so the question that's
what could API provided there have done better 1 1 of the
answer can be be ready for that API brand stands for a
presentation of the same concept is it is set architecture and try tidal with a set the right there a simple communication between the systems typically a client and the server when communication between these is based on http and now the question for you guys will can name all raised architecture constraints I have haven't itself so the
volunteer describes 6 architecture construction
client-server architecture is the basic restriction the for application this system is disconnected for example the clients are not concerned with data storage and the servers are not concerned with user interface on the fact that there is a division is to seperate architecture and responsibilities involved environmental in ways that we improve the productivity of their clients colored by simplifying the service component status
that if the constraints that can server in action 1 client can send multiple of requests sent to the server and each of them might be independent and this means that all requests to the server must contain only that information to service the request and
Berger world network efficiency or a time to the data from server explicitly that it as questionable on on cancer but we can't cut response messages on client and server side through to create that cash can be different for each with services began purification after a given period of time of an event a change in some states being formed
and that has the same central features that distinguish best for Africa motion time from other network-based status it and and commercial contract for communication between gradient and this have in the whole world guiding principles of uniform and the face on it and find themselves in many great injury sources for a presentation and so descriptive messages and hypermedia as the engine of application state the the system by
a nose and I the vector to be composed of their there can be multiple layers of software involved in to rank information so so there may improve it kind of begin by adding features like explained last year when or by providing short caches good undermined this
option and constraints servers contemporary extend or customize the functionality of clients by transfer of executablecode good undermine particularized alone on web browsers because like it was found findings of land all client-side scripting language
complying with this constraints West introduced circling the detector preparatory but
service in the eyes of the of the of the rest of the data constraints on cope quest for a few minutes the political want to say that have arrested API uses only HTTP and data and a lot of this is important and in fact of 1st what it meant to consider energy and RESTful ij Maastricht order would something defined in ways you could that's what the familiarity
with the right to cancel the rest achievements and treatment that it's surmise that the gates the internal the ever-increasing convergence of computer and with some of the Finnish statement of to orange action vector that rejects as much weaker model is the same kind of improvement map for include web services this is a spreadsheet and that more than I was organized to an area that i want is administered 20th API the concept
of France is to seperate the API structure in political results individual
resources are identified by URIs drain designed API it is so this is done directly map 1 tomorrow one-to-one your database infrastructures you don't want to hear about the implementation because in your API is sensitive versus thanks for example in order to get model some of the results that could look the we should note that 1 of these resources can now not that I also don't make singular and the analysis can be simple and use only played this
1 case convolution there remaining claims convention common kind of make a case and finite case as a bait-and-switch parameter good bigger this thing on sort of early on with throughout best think and when there is that the character written this
argument by the by you're arrives and manipulated by HTTP of operation following Catholic actually corresponds to create links update and delete so
remember can't methods should not actually the sum if you want to
recreate stuff about used method get only shows to get a specific event for just add energy to this we started on to you if you want to create a a the fences put that only some of the to the something that is the fundamental on that results of concrete events and to fact that the if you had a
relation good practice is the months of resources might make at most 2 elements of nested API object operated under resources and the same and so it can
consider optimal response the rate at which those presentation by default you only do is always best to get them involved and formulating too too much information and those don't and that's collections that has too many components by this approach using and avoid making extract APA and improve efficiency and that
chat with being an outlier if you would be API in my previous project you would have had a crisis on then if you from the beginning and end of the year would be happy to describe the
current values of a and B I should occur on random and HTTP status code I'm going to introduce this well known for example 200 OK can be used to successfully when create successfully API to usual could successfully and without API to create for 101 created I in this case to to to our a response when later and you answer that area I just created with Canada errors are solutions using HTTP status codes lecturer in an example I start to inform you that I would have been put into shallow and useful error message from the
incident at every time the amount of data and is important try to map it to make it fast searching just adequate parameters to the if you want to enable the training just attributes and what can be classified as expected value the surgery goes to his family there's sort of ordered by the way the name of attributes on which starting with the pair of this or understanding just add hyphen before attributes and sometimes basic vector and that's not fit our needs then we should consider providing context that claimed by means of the effects and that's
about it is to enable features which are in the rest of constant save valuable memory requirement only needed information this powerful system takes a comma separated include
according to the rest furore actions or resources are constrained to create read update the we're alive at this time and there are some cases that doesn't mean that the for example if you want to implement and would URIs of character was computed to also covered something authorities in exceptions should use that as your and names rather than and how we should use their own names that had they are the mall is it thinking and the of cell carefully described in Section exceptions in your pigmentation it's hard to
1st see all research agreement and you shouldn't amongst it active involved after time is central to a version of the dominant best approaches for rationing API is the most in the most planets include the and in Europe while you're out by itself quality then by adding better in its if a all and then implemented the form a version of that tonight the
results of the 2 main response is there and that even in the beginning you don't have large amount of data that you don't know how it will be in the future and the building in Irish Sign price is easier so there's also no 1 paging behind these you can at a change to your request is the value of and all each people had In
response to can we can't intonation and no overhead for example right or length and girth and the is we can easily navigate through the pages think there is Bob
Clinton server needs to know which of the following month is for communications we can use the HTTP header and OK this in constant then you find a request for in except specified to return for
In response messages and they will prepare it would the easier to the back or analyzing your API for about the crime abroad
and to respond to messages in most cases and unnecessary extra the response messages hi I'm
against and in other applications state is the most emitted constraints that you should try to use it in your API I just provide links to your API thing gains is if you don't have named in your API and your API still be useful to of the provide laughter providing them and it's more discoverable and descriptive but it's not a few once defined by the Lincoln Center in some events of time you have to go to some state such great statement on entity prepare it this is barrier API 1st have to go to documentation and kind and or society and then you'll have have to do the same for to find out how can display and proper events and after providing the links only need to know defined by the neck constant API is the root address you can interact with API designed to interact with
the communication is an important part of the API which actions and comments and make it easier for the current to described of the features that information so that the examples of unit or a request responses use core and your API where the is there device to communication should be easy to find in the friendly cell dealers developers are gone and make it from my
experience point of view I have this strange feeling that many developments and the kind of students think of my I mean there not business the reviews progress made from developed future for reality itself which is discussed in a position to 100 per cent back freedom of truck specially created to satisfy professor Anita and by some classes and then there is a high chance that it will have it the way and I'm sure you know what I'm talking about because we all did this
so remember have now make sure your code called follow the best practices in science that investigates how some part of the API should look at take have time and this is the this hatched this hard problem also in this issue told to initiate this model in the kitchen of this subject in your game is best practices where demand sense but of course don't get back in the infinite of of researching this approach think
comments undergo the most important it is fast and it's you're thinking about these thank you without and with been was judged I've got a question when you talk all the links and your baby I did you use for use so specified and you were there domains any of of any something happening focuses of the example of readings for example the middle metadata yeah this is the source of the name and the middle that and you can also provides a short description and about what it's that was just so you mentioned in the fall of the beginnings and response and I guess that's what the 2 aspects of the of any recommendation of this secure response can be solved that uncertainty you also doing that so that you can you know the as better OK so I was wondering how nested in response these all or many layers of this you can do that writing think that yeah but providing support directly in the responses so that you do not have to go to all the links I think that's was at most 11 hours of Ministry of and by its anything there is approach in a the other true Figure prepare languages and it makes little which beat all a users from this point of what worries anyone there were questions from fixed murdered again