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 hours Type of teaching Media implementation Concretization 30 Lecture Presence or online - 30 Learning in groups / Coaching of groups Presence or online - Lecturer independent learning Workload hours Type of teaching Media implementation Concretization 60 Preparation/follow-up for course work - 30 Creation 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;