36 Top REST API Interview Questions and Answers (2024)
Blog / 36 Top REST API Interview Questions and Answers (2024)
REST is everywhere!
REST stands for Representational State Transfer Application Programming Interface and is a set of rules and conventions for building and interacting with web services.
Having a deep understanding of REST is a must for all devs regardless if you're a frontend junior dev or a senior backend engineer.
This blog will get you up to speed with the lates REST API interview questions and will help you nail your next tech interview.
What is REST?
Junior
- REST, or Representational State Transfer, is an architectural style used for designing networked applications. It is based on stateless communication between clients and servers, using standard HTTP methods like GET, POST, PUT, and DELETE. Key features include:
- Stateless Interaction: Each client-server request contains all necessary information, with no session state stored on the server.
- Client-Server Architecture: Separates user interface concerns from data storage, improving portability and scalability.
- Uniform Interface: Simplifies the architecture and decouples components, allowing independent evolution.
- Cacheable Responses: Responses can be marked as cacheable to improve performance.
- Layered System: Allows the use of intermediary servers for load balancing and shared caches.
What are the key principles and constraints of REST?
Junior
- Client-Server Architecture: Separates user interface from data storage for improved portability and scalability.
- Stateless Communication: Each request from client to server must contain all necessary information; no client context is stored on the server.
- Cacheable Responses: Responses should be explicitly labeled as cacheable or non-cacheable to enhance performance.
- Uniform Interface: Standard methods to interact with resources, typically using HTTP verbs, ensuring simplicity and decoupling.
- Layered System: The architecture allows for intermediaries like proxies or gateways, enhancing scalability and security.
- Code on Demand (Optional): Servers can provide executable code to extend client functionality, though this is an optional constraint.
Explain statelessness in the context of REST.
Junior
- Statelessness in REST means each client-server request is self-contained and independent. Key points include:
- Self-contained Requests: Every request from a client includes all necessary information for the server to process it (e.g., authentication data).
- No Server-side Session State: The server doesn't store any state or session data about the client, enhancing scalability and simplifying server design.
- Independent Requests: Each request is treated as new, with no dependence on previous interactions.
- Scalability and Reliability: Without server-side state, the system can more easily scale and is more reliable, as there's no session state to manage or synchronize.
- Client Responsibility: Maintaining state across requests is the client's responsibility.
Explain resource-based in the context of REST.
Junior
- Resource-Based: In REST, everything is treated as a resource, which can be an object, data, or service. Each resource is uniquely identified by a URI, and interactions with these resources are typically done using standard HTTP methods.
Explain representation in the context of REST.
Junior
- In REST, "representation" refers to the format in which a resource's state is conveyed between the client and server. Key points include:
- Resource State: The data of a resource at a specific time.
- Formats: Can be JSON, XML, HTML, or plain text, among others.
- Content Negotiation: Clients request and servers respond in mutually agreeable formats.
- Data Transfer: Represents resource states during requests and updates.
- Decoupling: Separates resource data from its representation, enhancing flexibility and scalability.
Don't let one question ruin your next technical interview...
Explain layered system in the context of REST.
Junior
- Layered System: A client may interact with the server through intermediary components (e.g., load balancers, caches), which can enhance system scalability and security. The client isn't necessarily aware of the underlying architecture.
Give an overview of HTTP status codes.
Junior
- In the context of REST (Representational State Transfer), HTTP status codes are a crucial part of the communication between clients (e.g., web browsers or mobile apps) and servers. They provide information about the outcome of an HTTP request and help both clients and servers understand how to proceed or handle the response. RESTful APIs use HTTP status codes to indicate whether a request was successful, encountered an error, or requires further action.
- 2XX - Success
- 3XX - Redirection
- 4XX - Client Error
- 5XX - Server Error
What’s a real-world example of a REST API?
Junior
- A real-world example of a REST API is the Google Maps API. It allows developers to integrate Google Maps services into their applications. This includes retrieving map data, geocoding addresses, plotting directions, and various other location-related functionalities.
- It uses standard HTTP methods, returns data in formats like JSON or XML, and follows REST principles for easy and flexible integration into different web or mobile applications.
What are cache-control headers?
Junior
- Cache-control headers are HTTP headers used to specify browser and intermediary caching policies for web resources, like how long a resource can be cached, whether it should be revalidated, and whether it can be stored in public or private caches.
Explain the core components of a HTTP Request.
Mid
- Method: The verb: GET, DELETE, POST, PUT, PATCH.
- URI: Used to identify the resource, typically a url.
- HTTP version: Indicates the http version being used, typically 1.1 or 2.0.
- Request Header: Contains the request metadata - message format, cache settings, content format etc.
- Request Body: Contains the content or data that is being sent.
Explain the core components of a HTTP Response.
Mid
- Status code: Provides information about the success or failure of a request.
- HTTP version: Indicates the http version being used, typically 1.1 or 2.0.
- Response Header: Contains the request metadata - message format, cache settings, content format etc.
- Response Body: Contains the returned data, it should always contain a body even if there is not data.
What is a URI?
Mid
- A URI (Uniform Resource Identifier) is a string used to identify a resource on the Internet. It has several key features:
- Resource Identification: It uniquely identifies a resource either by location, name, or both.
- Components: Typically includes a scheme (like http, https), host (domain or IP), optional port, path (resource location on the host), and optional query string.
- Includes URLs and URNs: A URL (Uniform Resource Locator) locates a resource (e.g., http://www.example.com), while a URN (Uniform Resource Name) names a resource (e.g., urn:isbn:0451450523).
- Widespread Use: Commonly used on the Internet for various purposes, including identifying web pages and namespaces in XML.
What are some of the advantages of RESTful web services?
Mid
- Simplicity and Lightweight: Uses standard HTTP methods, easy to implement with formats like JSON or XML.
- Statelessness: Each request is self-contained, enhancing scalability and reliability.
- Scalability and Performance: Handles large numbers of requests effectively, supports caching.
- Platform and Language Independence: Can be used across various programming languages and platforms.
- Cacheability: Responses can be cached for improved performance.
- Flexibility and Portability: Client-server decoupling allows for easy evolution and data manipulation.
- Ease of Integration: Simplifies integration with other systems and services.
- Uniform Interface: Standardized communication simplifies interactions.
What are some of the disadvantages of RESTful web services?
Mid
- Statelessness Overhead: Each request must carry complete information, potentially leading to increased data transmission and slower interactions.
- Security Concerns: Reliance on HTTP for security may expose vulnerabilities if not properly implemented.
- Limited Methods: Standard HTTP methods may be restrictive for complex operations.
- Data Overhead: HTTP and text-based formats like XML can create significant data overhead.
- Performance Under High Load: Stateless nature can impact performance in high-traffic situations, requiring advanced load balancing and caching.
- Complex State Management: Managing state across requests can lead to complicated client-side logic.
- No Standard Error Handling: Lack of standardized error handling can lead to inconsistent implementations.
- Higher Bandwidth Usage: Text-based formats can consume more bandwidth than binary protocols.
What is an idempotent method?
Mid
- An idempotent method in HTTP and REST is an operation that produces the same result whether it's executed once or multiple times. Key aspects include:
- Consistent State: Repeated execution does not change the resource's state beyond the initial application.
- Examples in HTTP: GET, PUT, and DELETE are idempotent. Multiple identical requests have the same effect as a single request. POST is usually not idempotent as it typically creates new resources.
- Error Handling: Idempotency is important for safe retries of requests after failures, ensuring no unintended duplicate operations.
- Difference from Safe Methods: Unlike safe methods (like GET, which do not modify resources), idempotent methods (like PUT, DELETE) can alter a resource but in a way that doesn't compound changes with multiple requests.
What is Cross-Origin Resource Sharing (CORS), and how do you enable it in a REST API?
Mid
- Cross-Origin Resource Sharing (CORS) is a security feature that allows or restricts web applications from making requests to a domain different from the one that served the web application.
- To enable CORS in a REST API, you typically set HTTP headers such as Access-Control-Allow-Origin in the server's responses to indicate which origins are permitted to access the resources.
What is a Content Security Policy and how do you configure it?
Mid
- A Content Security Policy (CSP) is a security standard designed to prevent cross-site scripting (XSS), clickjacking, and other code injection attacks.
- It's configured by setting the Content-Security-Policy HTTP header in a web page's response. This header specifies which dynamic resources are allowed to load, thereby restricting resources like scripts, styles, or frames from untrusted sources.
Explain the concept of versioning in RESTful APIs.
Mid
- Versioning in RESTful APIs involves maintaining different versions of the API to handle changes over time without disrupting existing clients. This can be done using URL paths (e.g., /v1/endpoint), query parameters (e.g., ?version=1), or custom request headers.
- It allows API developers to introduce new features, fix issues, or make changes while providing backward compatibility for older clients.
What is the role of REST in microservices architecture?
Mid
- In microservices architecture, REST plays a key role in defining lightweight, stateless, and scalable communication between different microservices.
- It facilitates the development of independently deployable services that interact over well-defined HTTP APIs, ensuring loose coupling and high cohesion.
Why are REST services easily scalable?
Mid
- REST services are easily scalable due to their stateless nature (each request contains all necessary information independently), allowing for easy load distribution across multiple servers, and their use of standard HTTP protocols, which simplifies interfacing with various clients and servers.
Explain the concept of rate limiting in RESTful APIs.
Mid
- Rate limiting in RESTful APIs is a control mechanism to limit the number of requests a client can send to the API in a given time frame, usually to prevent abuse and manage server load.
- It's implemented by tracking request counts per client (identified by IP or API key) and returning errors like '429 Too Many Requests' once the limit is exceeded.
What is the difference between authentication and authorization?
Mid
- Authentication: This is the process of verifying the identity of a user or system. It answers the question, "Who are you?" Common methods include using passwords, tokens, or biometric data.
- Authorization: Once identity is verified, authorization determines what resources and actions the authenticated user or system is permitted to access and perform. It answers the question, "What are you allowed to do?"
How can RESTful web services be tested?
Mid
- RESTful web services can be tested using tools like Postman, cURL, or specialized software testing frameworks. Testing typically involves sending various HTTP requests to the API endpoints and verifying the responses, including status codes, headers, and body content. Automated tests can also be integrated into CI/CD pipelines.
What is CRUD?
Mid
- CRUD stands for Create, Read, Update, and Delete. It's a set of basic operations performed in persistent storage like databases or data repositories in software applications.
- Create: Adding new records or data.
- Read: Retrieving or viewing existing data.
- Update: Modifying existing data.
- Delete: Removing data.
How do you prevent security vulnerabilities like Cross-Site Request Forgery (CSRF) in a RESTful API?
Mid
- To prevent CSRF in RESTful APIs:
- Use Tokens: Implement anti-CSRF tokens in requests, validated server-side.
- Same-Site Cookies: Set cookies as 'SameSite' to restrict cross-site sharing.
- Check Referer Header: Validate the 'Referer' header in requests for legitimacy.
- Use Custom Headers: Rely on custom headers which aren't included in cross-site requests.
- Stateless Authentication: Prefer stateless authentication (like OAuth or JWT tokens) over cookies.
Is it possible to send payload in the GET and DELETE methods?
Mid
- Technically, it's possible to send a payload with GET and DELETE requests in HTTP, but it's not recommended and often not supported.
- GET: Designed to retrieve data; a payload is not standard and is often ignored by servers.
- DELETE: Typically used to delete a resource identified by the URI; including a payload is not standard and many servers ignore it.
Describe the differences between stateless and stateful authentication.
Mid
- Stateless Authentication:
- Server doesn't store session state; each request contains all necessary data.
- Typically uses tokens (like JWT) sent with each request.
- Scalable, as it reduces server memory use.
- Stateful Authentication:
- Server stores user session state, typically in a session store or database.
- Relies on session identifiers (like session cookies) to track user state.
- Can be resource-intensive, impacting scalability.
How can you implement authentication using JSON Web Tokens (JWT) in a RESTful API?
Mid
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Differentiate POST, PUT, and PATCH methods.
Mid
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
What is the difference between REST and RESTful services?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
What are some of the main differences between REST and SOAP?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
What are some of the differences between REST and AJAX?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
What is HATEOAS (Hypermedia as the Engine of Application State), and why is it important in RESTful APIs?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Is it possible to implement transport layer security (TLS) in REST?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
How can you optimize a RESTful API for performance and scalability?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
In a microservices architecture, how would you ensure data consistency and handle distributed transactions?
Senior
Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.
Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.Nemo enim ipsam voluptatem quia voluptas sit aspernatur aut odit aut fugit, sed quia consequuntur magni dolores eos qui ratione voluptatem sequi nesciunt. Neque porro quisquam est, qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit, sed quia non numquam eius modi tempora incidunt ut labore et dolore magnam aliquam quaerat voluptatem.