Task #485
openTask #482: BackEnd common concepts investigation
BackEnd common concepts investigation [Kim]
100%
Description
What's API? Use for? And more details
- An API stands for Application Programming Interface. It is a set of rules and protocols that allows one software program or application to interact with another. APIs define the methods and data formats that applications can use to request and exchange information. In simpler terms, an API is a bridge that enables different software components to communicate and work together.
- Here are some key points about APIs: Interoperability, Abstraction, Standardization, Purpose, Web APIs, Documentation, Security
- APIs (Application Programming Interfaces) are used for a wide range of purposes in software development and technology. They serve as a bridge that allows different software systems, services, and applications to communicate and work together. Here are some common use cases for APIs: Data Access, Functionality Access, Integration, Automation, Extensibility, IoT (Internet of Things), Web Development, Mobile App Development, Operating System APIs, Library and Framework APIs, Social Media Integration, E-commerce Integration
What's Swagger?
- Swagger is a set of open-source tools and frameworks for designing, building, documenting, and consuming RESTful web services. It provides a standardized way to describe, document, and interact with APIs. Swagger was originally developed by SmartBear Software and is now known as the OpenAPI Specification.
CRUD?
- CRUD is an acronym that stands for Create, Read, Update, and Delete. It represents the four basic functions that can be performed on data, typically in the context of a database or data storage system. These operations are fundamental to data management and are often used in software development and database applications.
- Create (C) : This operation is about adding new data or records to a system or database. It involves the creation of new entries with specified attributes. In a database context, this operation corresponds to inserting a new row into a table.
- Read (R) : The "Read" operation is about retrieving or querying existing data from the system or database. It allows users to access and view data, whether it's a single record, a subset of records, or the entire dataset. In a database context, this operation corresponds to selecting or querying data from a table.
- Update (U) : Updating is the process of modifying existing data. It allows users to change specific attributes of a record while keeping the rest of the data intact. In a database context, this operation corresponds to modifying one or more columns of an existing row.
- Delete (D) : The "Delete" operation involves removing data or records from the system or database. It permanently eliminates the selected data, reducing the dataset's size. In a database context, this operation corresponds to removing one or more rows from a table.
Relationship between frontend, backend, database
- The relationship between the frontend, backend, and database in a typical web application can be described as a multi-tier architecture. Each of these components serves a distinct role and interacts with the others to provide a complete and functional application.
More related informations
- Responsibilities:
Frontend:
Manages the user interface and user experience (UI/UX).
Handles client-side validation and input validation.
Renders and displays data to users.
Interacts with users directly through the browser or mobile app.
Backend:
Handles application logic, including authentication and authorization.
Acts as an intermediary between the frontend and the database.
Implements business rules and processes.
Manages data and data transformations.
Database:
Stores structured data, typically in tables or collections.
Ensures data consistency, integrity, and security.
Manages data retrieval and storage operations.
Handles database transactions and queries.
- Communication:
Frontend-Backend Communication:
Frontend communicates with the backend using HTTP requests (GET, POST, PUT, DELETE).
Data is typically exchanged in JSON format or XML.
The frontend consumes APIs exposed by the backend to access data and services.
Backend-Database Interaction:
The backend communicates with the database using database-specific protocols (e.g., SQL for relational databases).
Database queries and transactions are used to retrieve, update, or insert data.
Backend developers handle database connections and data manipulation.
- Separation of Concerns:
The separation of frontend and backend code promotes modularity and maintainability. Frontend developers focus on user interface and user experience, while backend developers handle the business logic.
Separating the database from the application logic ensures data consistency, security, and scalability. Changes to the database schema do not directly impact the application code.
- Scalability:
Horizontal scalability can be achieved by adding more frontend and backend servers to distribute user requests and application logic processing.
Vertical scalability involves optimizing the database system to handle more data and traffic efficiently.
- Technologies:
Frontend technologies include HTML, CSS, JavaScript, and front-end frameworks like React, Angular, or Vue.js.
Backend technologies vary and can include languages like Node.js, Python, Ruby, Java, or C#, as well as server frameworks and platforms like Express.js, Django, Ruby on Rails, or ASP.NET.
Database management systems (DBMS) include relational databases like PostgreSQL and MySQL, NoSQL databases like MongoDB, and cloud-based databases like Amazon RDS or Google Cloud SQL.
- Security:
Authentication and authorization are typically managed on the backend to ensure secure access to data and resources.
Database security measures like encryption, user access control, and input validation protect against data breaches and unauthorized access.
- APIs:
Backend developers often create APIs to expose specific functionality or data to the frontend. These APIs define the contract for data exchange between frontend and backend.
- Testing and Debugging:
Frontend and backend components are tested separately. Frontend testing tools may include Jest, Cypress, and Selenium, while backend testing tools may include Mocha, Postman, and JUnit.
Database testing ensures data consistency and can involve unit testing of database queries and transactions.
No data to display