Application Programing Interface Design

Faculty

Faculty of Engineering and Computer Science

Version

Version 1 of 27.11.2025.

Module identifier

11B1150

Module level

Bachelor

Language of instruction

German

ECTS credit points and grading

5.0

Module frequency

irregular

Duration

1 semester

 

 

Brief description

An API, or Application Programming Interface, is a programming interface that is offered by software or a software module for integration and interaction. Ultimately, for software developers, the API is the equivalent of a (graphical) user interface for users. While the user experience (UX) plays a decisive role in GUI design, the developer experience (DX) should be taken into account in API design. There is no question that an API must fulfil the functional and non-functional requirements needed by the developer. However, the API should also be simple and intuitive to use and prevent incorrect use as far as possible. APIs of local components and distributed services represent a very high value for companies. Accordingly, developers should be familiar with existing standards, patterns and best practices for API design and be able to apply them successfully. They should also have basic knowledge of API documentation, API testing and API management. The latter includes the provision, publication, versioning and deactivation of an API.

Teaching and learning outcomes

  • Quality features, principles and patterns
  • Local programming interfaces
  • Remote programming interfaces
  • Documentation and self-description
  • Testing programming interfaces

Overall workload

The total workload for the module is 150 hours (see also "ECTS credit points and grading").

Teaching and learning methods
Lecturer based learning
Workload hoursType of teachingMedia implementationConcretization
30LecturePresence or online-
30Learning in groups / Coaching of groupsPresence or online-
Lecturer independent learning
Workload hoursType of teachingMedia implementationConcretization
60Preparation/follow-up for course work-
30Creation of examinations-
Graded examination
  • Homework / Assignment or
  • Oral presentation, with written elaboration or
  • Project Report, written
Ungraded exam
  • Field work / Experimental work or
  • Regular participation
Recommended prior knowledge

Advanced knowledge of object-oriented programming. In-depth knowledge of an object-oriented programming language covered in previous basic modules. Basic prior knowledge of object-oriented design, distributed systems development, and software architecture in general is helpful but not required.

Knowledge Broadening

Students who have successfully completed this module will be able to:

  • Appropriately design, implement, test, deploy and customise interfaces between classes, packages, modules, components and services.

Knowledge deepening

Students who have successfully completed this module will be able to:

  • justify the importance and impact of interface design
  • ntegrate existing software components via defined interfaces
  • design and implement interfaces
  • characterise interfaces in terms of required quality features

Knowledge Understanding

Students who have successfully completed this module will be able to:

  • assess and evaluate the quality of APIs
  • explain the impact of decisions on an API and its use
  • assess the advantages and disadvantages of patterns and best practices used

Application and Transfer

Students who have successfully completed this module will be able to:

  • implement appropriate interfaces at different levels of software, from conception to deployment and maintenance.

Communication and Cooperation

Students who have successfully completed this module will be able to:

  • Determine the requirements for the interface of a programme or software module from developers
  • Document the programming interface of a programme/software module and explain it to software architects and developers in discussions.

Academic Self-Conception / Professionalism

Students will be able to:

design appropriate programming interfaces

Literature

  • Biehl M. (2016): RESTful API-Design, CreateSpace Independent Publishing Platform, 1. Auflage
  • De B. (2017): API Management: An Architect‘s Guide to Developing and Managing APIs for Your Organization, Apress-Verlag, 1. Auflage
  • Spichale K. (2017): API-Design – Praxishandbuch für Java- und Web-Service-Entwickler, dpunkt.verlag, 1. Auflage
  • Tilkov S., et al. (2015): REST und HTTP: Entwicklung und Integration nach dem Architekturstil des Web, dpunkt.verlag, 3. Auflage
  • Martin R. C. (2008): Clean Code: A Handbook of Agile Software Craftsmanship, Prentice Hall, 1. Auflage
  • Daigneau R. (2012): Service Design Patterns, Addison-Wesley, 1. Auflage
  • Wolf E. (2016): Continous Delivery: Der pragmatische Einstieg, dpunkt.verlag, 1. Auflage
  • Mouat A, Docker – Software entwickeln und deployen mit Container, dpunkt.verlag, 1. Auflage
  • Newman S. (2015): Microservices: Konzeption und Design, mitp-Verlag, 1. Auflage

Applicability in study programs

  • Computer Science and Media Applications
    • Computer Science and Media Applications B.Sc. (01.09.2025)

  • Computer Science and Computer Engineering
    • Computer Science and Computer Engineering B.Sc. (01.09.2025)

    Person responsible for the module
    • Roosmann, Rainer
    Teachers
    • Roosmann, Rainer
    Further lecturer(s)

    Roosmann, Rainer;