Siirry suoraan sisältöön

Mastering the Fundamentals of RESTful API Design (6 cr)

Code: TT00DG26-3005

General information


Timing

01.01.2021 - 31.12.2021

Number of ECTS credits allocated

6 op

Virtual portion

6 op

Mode of delivery

Distance learning

Unit

ICT ja tuotantotalous

Campus

Karaportti 2

Teaching languages

  • English

Seats

0 - 5000

Degree programmes

  • Tieto- ja viestintätekniikan tutkinto-ohjelma

Teachers

  • Virve Prami

Groups

  • ATX21TV
    NonStop virtuaaliopinnot vuosi 2021

Objective

Designing APIs for use over the web is a key part of most web development projects these days. Knowing the best way to design them with longevity, testability and reliability in mind is important. The goal of this course is for the student to be familiar with APIs, the concept of API Design and what is essential to design of an API-based solution. By explaining API Design steps and API Design approaches, the student will be familiar with all these concepts in a practical way. Then the student will be familiar with different API styles, and obtain a deeper level of knowledge about REST and its key difference and advantageous over the other styles. Finally, the student will understand security and performance concerns.
This course is 100% virtual thanks to the comprehensive tutorial videos and content made for this course.
The student will pass this course after submitting required assignments, quiz and projects.

Content

Introduction Part:
What is an API? - Why we are using APIs? - What makes a business service good and practical? - How to use an API? - Clients using an API-based solution - What does an API-based solution consists of? - What is API Design? - API Design Decisions - API Design vs. API Architecture - Why do I need API Modeling Languages? - Steps to build an API - API Value Chain - Understand your API consumers - What do the Developers as your Consumers expect from your API? - Consumer-Oriented Design Approaches - API Design & Agile methodology - API Design approach
Intermediate Part:
API Description Languages - Usage of API Description Languages - Limitations of API Description Languages - APIs responsibilities - API properties - Different API Styles (REST-SOAP-RPC-HATEOAS) - REST vs. SOAP - REST Concept vs. HTTP Concept – Resources - Status Codes – URI - API Base URL Naming Tips - API Endpoints Tips
Advanced Part:
Richardson Maturity Model - Content Negotiation - Parameters - HTTP Methods - Input and Output Validation - Building API Approaches - Dealing with Backend Errors - Non-Functional Properties of APIs - Security Concerns - Security Mechanisms - Performance and Availability – Caching - Load Balancer - Agile & API - Backward Compatible Changes – Versioning - Developers & Open APIs - API Consumers Types - API Consumers Considerations - SLA Management - API Testing Tools - API Statistics

Location and time

Up to Student - course is online (Self-Study) course.

Materials

Can be find in study environment.

Teaching methods

- Tutorial Videos
- Assignments
- Quiz
- Projects
- Self-study

Employer connections

N/A

Exam schedules

Up to Student - course is online (Self-Study) course.

International connections

N/A

Completion alternatives

N/A

Student workload

Up to Student - course is online (Self-Study) course.

Content scheduling

Up to Student - course is online (Self-Study) course.

Evaluation scale

Hyväksytty/Hylätty

Assessment criteria, satisfactory (1)

- The students understand the difference between API Design and API Architecture.
- The student knows what does an API-based solution consists of and can explain them.
- The student understands the concept of API Design.
- The student knows the steps to build an API.
- The student knows APIs responsibilities and APIs properties
- The student briefly knows Different API Styles
- The student briefly knows HTTP Methods, resources, status codes, parameters, and URL.
- The student knows different Versioning styles.

Assessment criteria, good (3)

- The student knows what are API Modeling Languages and why we are using them.
- The student comprehensively knows Different API Styles
- The student comprehensively knows HTTP Methods, resources, status codes, parameters, and URL
- The student understands Non-Functional Properties of APIs.

Assessment criteria, excellent (5)

- The student knows Richardson Maturity Model.
- The student understands content negotiation.
- The student knows how to deal with Backend errors.
- The student has a good understanding about Security Concerns and Security Mechanisms.
- The student can determine if the changes of the API are Backward Compatible.
- The student knows SLA Management concept.

Assessment criteria, approved/failed

N/A

Assessment methods and criteria

Lectures = 25h
Labs = 25h