Skip to content

uziwhoavg/Module_10_UZINCU608_PTO2403_Group-C_UZI-NCUBE_SDF10

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 

Repository files navigation

[SDF10] API Learning Reflection 🧠

  1. Understanding and Application: Reflecting on the key concepts, can you explain in your own words what an API is and its significance in software development? Provide an example of how you have used or encountered an API in a project or a practical scenario.

[To my understanding, An API would be synonymous to a set of rules and specifications that would further allow different software applications to communicate and interact with each other. Essentially, acting as a bridging medium, to enable the exchange of data and necessary functions without having a software developer to know the intricate and complex workings of either applications.

An example I have since become familiar with would be that of Payment Gateways , such as PayHost of PayFast. Instead of trying to build a secure complex payment processing system from scratch , considering the various global banking institutions involved , options and all that comes with safely having customers process their payments on my webpage. Hence, I used the Paygate API provided by Payfast. Of which I then integrated into my app's interface. This saved significant development time and resources. ]

  1. Conceptual Distinctions: How would you differentiate between an interface and an API?

[Although Related, Interfaces and APIs have their respectively distinct roles.

Interfaces essentially layout the contract for which a software component would be bounded to behave by. An outlining of the methods/actions and the relevant properties/data that the mentioned component would evidently expose to the neighbouring parts of the system.

APIs build on the concept of interfaces. Including the implementation of the methods/actions and properties/data defined in the interface. It would specify how it would interact with the prior mentioned component. It involves network communication and data exchange.

Hence, the interface would be the plan/Blueprint and the API would be the structure built around the plan. ]

  1. Components and Types of APIs: Can you identify the main components of an API and describe their roles? Reflect on the different types of APIs mentioned (e.g., Web APIs, RESTful APIs) and discuss which type you find most intriguing or useful, and why.

[Main components of an API:

  • ENDPOINT: The URL , Address of API access.
  • METHODS / OPERATIONS: What can be performed on the API ; Retrieval, Creation, Updating, Deletion of data (GET, POST, PUT, DELETE respectively)
  • PARAMETERS: Information accompanying a request, refinery and specification of data returned.
  • AUTHENTICATION: Security Measures in place to control accessibility to the API, KEYS, OAuth, Ilok?

Seeing as that there are various API types, WEB APIs are very common. Hence I find these most intriguing seeing as that they are simple, scalable and rely heavily on widely used web standards. ]

  1. Practical Application and Tools: Reflect on your experience with API exploration and implementation. Have you used any specific tools (such as Curl or API exploration tools) or libraries to interact with APIs?

[While exploring APIs, I've come across tools like Postman to attempted to send requests and examine responses. Seeing as im somewhat comfortable In Python , i attempted to explore prior projects, further attempting to understand its abilities and interactivity . libraries like 'requests' seemed to have been invaluable for interacting with APIs. I've also used online documentation and API explorer tools provided by API providers to understand the available endpoints and parameters.]

  1. Learning and Improvement: Considering the key concepts and your practical experiences, identify one area related to APIs where you feel confident and one area where you see a need for improvement. What steps will you take to enhance your understanding and skills in the area you wish to improve?

[I feel quite confident in understanding the basic concepts of APIs, sending requests, and interpreting responses. However, I recognize that there's room for improvement in areas like API design principles, security best practices. To address these, I plan to:

  • Study API design resources: Videotutorials on API design patterns and best practices.
  • Experiment with different API types: Explore emerging API technologies.
  • Try Participate in online courses : Enroll in short structured learning programs to gain in-depth knowledge. By actively engaging with these resources and practices, I aim to enhance my expertise in the ever-evolving field of APIs. GOD WILLING]

About

Reflecting on the key concepts of an APIand its significance in software development.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published