Spring MVC Tutorial

Core Spring MVC

Spring MVC - Annotation

Spring MVC - Form Handling

Spring MVC with JSTL

Spring MVC with REST API

Spring MVC with Database

Spring MVC - Last 24-Hour Cryptocurrency Data using REST API

Fetching the last 24-hour cryptocurrency data using REST APIs and displaying it in a Spring MVC application involves several steps. Here's a guideline on how you can achieve this:

1. Maven Dependencies:

Ensure that you have added the necessary dependencies in your pom.xml:

<!-- Spring Web MVC -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-webmvc</artifactId>
    <version>${spring.version}</version>
</dependency>

<!-- Spring Web for REST Template -->
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-web</artifactId>
    <version>${spring.version}</version>
</dependency>

<!-- Jackson for JSON Parsing -->
<dependency>
    <groupId>com.fasterxml.jackson.core</groupId>
    <artifactId>jackson-databind</artifactId>
    <version>${jackson.version}</version>
</dependency>

2. Model:

Create a model to represent the cryptocurrency data. This will depend on the structure of the JSON response from the API you are using:

public class Cryptocurrency {
    private String name;
    private double currentPrice;
    private double change24h;
    // Other fields, getters, setters, etc.
}

3. Service:

Create a service that uses Spring's RestTemplate to fetch the cryptocurrency data:

@Service
public class CryptoService {
    
    @Value("${crypto.api.url}")
    private String apiUrl;

    private RestTemplate restTemplate = new RestTemplate();

    public List<Cryptocurrency> getLast24HoursData() {
        ResponseEntity<Cryptocurrency[]> response = restTemplate.getForEntity(apiUrl, Cryptocurrency[].class);
        return Arrays.asList(response.getBody());
    }
}

In application.properties, add the API endpoint:

crypto.api.url=https://api.yourservice.com/last24hours

4. Controller:

@Controller
@RequestMapping("/crypto")
public class CryptoController {

    @Autowired
    private CryptoService cryptoService;

    @GetMapping("/last24hours")
    public String getLast24HoursData(Model model) {
        List<Cryptocurrency> data = cryptoService.getLast24HoursData();
        model.addAttribute("data", data);
        return "cryptoView";
    }
}

5. JSP View:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>

<!DOCTYPE html>
<html>
<head>
    <title>Last 24 Hours Crypto Data</title>
</head>
<body>

<h2>Last 24 Hours Cryptocurrency Data</h2>
<table border="1">
    <thead>
        <tr>
            <th>Name</th>
            <th>Current Price</th>
            <th>Change (24h)</th>
        </tr>
    </thead>
    <tbody>
        <c:forEach var="crypto" items="${data}">
            <tr>
                <td>${crypto.name}</td>
                <td>${crypto.currentPrice}</td>
                <td>${crypto.change24h}</td>
            </tr>
        </c:forEach>
    </tbody>
</table>

</body>
</html>

6. Run and Test:

Run your Spring MVC application and navigate to /crypto/last24hours. You should see the last 24-hour cryptocurrency data fetched from the REST API and displayed in a table.

Note: Always ensure that the API you are using provides the necessary CORS headers if you're making cross-origin requests. Also, some cryptocurrency data APIs might require API keys or other forms of authentication. Ensure you handle these requirements properly in your service layer.

  1. Spring MVC Last 24-Hour Cryptocurrency Data REST API Example:

    • Description: This is a basic example demonstrating how to use a REST API to retrieve last 24-hour cryptocurrency information in a Spring MVC application.

    • Code Snippet: (Controller)

      // Controller class
      @RestController
      @RequestMapping("/crypto")
      public class CryptoController {
      
          @Autowired
          private CryptoService cryptoService;
      
          @GetMapping("/last-24-hours")
          public ResponseEntity<List<CryptoData>> getLast24HourData() {
              List<CryptoData> data = cryptoService.getLast24HourData();
              return new ResponseEntity<>(data, HttpStatus.OK);
          }
      }
      
  2. Using REST API to Get Last 24-Hour Cryptocurrency Information in Spring MVC:

    • Description: This example demonstrates using a REST API to fetch last 24-hour cryptocurrency information in a Spring MVC application.

    • Code Snippet: (Service)

      // Service class
      @Service
      public class CryptoService {
      
          @Autowired
          private RestTemplate restTemplate;
      
          public List<CryptoData> getLast24HourData() {
              String apiUrl = "https://api.example.com/cryptodata/last-24-hours";
              ResponseEntity<List<CryptoData>> response = restTemplate.exchange(
                  apiUrl,
                  HttpMethod.GET,
                  null,
                  new ParameterizedTypeReference<List<CryptoData>>() {}
              );
              return response.getBody();
          }
      }
      
  3. Consuming Cryptocurrency API for 24-Hour Data in Spring MVC:

    • Description: This example focuses on consuming a cryptocurrency API to retrieve 24-hour data in a Spring MVC application.

    • Code Snippet: (Service)

      // Service class
      @Service
      public class CryptoService {
      
          @Autowired
          private RestTemplate restTemplate;
      
          public List<CryptoData> getLast24HourData() {
              String apiUrl = "https://api.example.com/cryptodata/last-24-hours";
              ResponseEntity<List<CryptoData>> response = restTemplate.exchange(
                  apiUrl,
                  HttpMethod.GET,
                  null,
                  new ParameterizedTypeReference<List<CryptoData>>() {}
              );
              return response.getBody();
          }
      }
      
  4. RESTful Endpoint for Last 24-Hour Cryptocurrency Details in Spring MVC:

    • Description: This example demonstrates creating a RESTful endpoint for retrieving last 24-hour cryptocurrency details in a Spring MVC application.

    • Code Snippet: (Controller)

      // Controller class
      @RestController
      @RequestMapping("/crypto")
      public class CryptoController {
      
          @Autowired
          private CryptoService cryptoService;
      
          @GetMapping("/last-24-hours")
          public ResponseEntity<List<CryptoData>> getLast24HourData() {
              List<CryptoData> data = cryptoService.getLast24HourData();
              return new ResponseEntity<>(data, HttpStatus.OK);
          }
      }
      
  5. Retrieving Last 24-Hour Cryptocurrency Data with Spring RestTemplate:

    • Description: This example illustrates how to use Spring RestTemplate to retrieve last 24-hour cryptocurrency data in a Spring MVC application.

    • Code Snippet: (Service)

      // Service class
      @Service
      public class CryptoService {
      
          @Autowired
          private RestTemplate restTemplate;
      
          public List<CryptoData> getLast24HourData() {
              String apiUrl = "https://api.example.com/cryptodata/last-24-hours";
              ResponseEntity<List<CryptoData>> response = restTemplate.exchange(
                  apiUrl,
                  HttpMethod.GET,
                  null,
                  new ParameterizedTypeReference<List<CryptoData>>() {}
              );
              return response.getBody();
          }
      }
      
  6. Spring MVC Cryptocurrency Information Display for the Past Day:

    • Description: This example focuses on displaying cryptocurrency information for the past day in a Spring MVC application.

    • Code Snippet: (View - JSP/Thymeleaf)

      <!-- JSP Page or Thymeleaf Template -->
      <ul>
          <li th:each="cryptoData : ${cryptoDataList}">
              <!-- Display cryptocurrency information -->
              <p th:text="${cryptoData.name}"></p>
              <p th:text="${cryptoData.price}"></p>
              <!-- Add more fields as needed -->
          </li>
      </ul>
      
  7. External API Integration for 24-Hour Cryptocurrency Data in Spring MVC:

    • Description: This example demonstrates integrating an external API to fetch 24-hour cryptocurrency data in a Spring MVC application.

    • Code Snippet: (Service)

      // Service class
      @Service
      public class CryptoService {
      
          @Autowired
          private RestTemplate restTemplate;
      
          public List<CryptoData> getLast24HourData() {
              String apiUrl = "https://api.externalprovider.com/cryptodata/last-24-hours";
              ResponseEntity<List<CryptoData>> response = restTemplate.exchange(
                  apiUrl,
                  HttpMethod.GET,
                  null,
                  new ParameterizedTypeReference<List<CryptoData>>() {}
              );
              return response.getBody();
          }
      }
      
  8. Fetching Real-Time Cryptocurrency Trends in Spring MVC:

    • Description: This example illustrates fetching real-time cryptocurrency trends in a Spring MVC application using a REST API.

    • Code Snippet: (Controller)

      // Controller class
      @RestController
      @RequestMapping("/crypto")
      public class CryptoController {
      
          @Autowired
          private CryptoService cryptoService;
      
          @GetMapping("/real-time-trends")
          public ResponseEntity<List<CryptoTrend>> getRealTimeTrends() {
              List<CryptoTrend> trends = cryptoService.getRealTimeTrends();
              return new ResponseEntity<>(trends, HttpStatus.OK);
          }
      }
      
  9. Building a Cryptocurrency Data Service with Spring MVC and REST for the Last Day:

    • Description: This example focuses on building a complete cryptocurrency data service in a Spring MVC application with RESTful endpoints for the last day's data.

    • Code Snippet: (Controller)

      // Controller class
      @RestController
      @RequestMapping("/crypto")
      public class CryptoController {
      
          @Autowired
          private CryptoService cryptoService;
      
          @GetMapping("/last-24-hours")
          public ResponseEntity<List<CryptoData>> getLast24HourData() {
              List<CryptoData> data = cryptoService.getLast24HourData();
              return new ResponseEntity<>(data, HttpStatus.OK);
          }
      
          @GetMapping("/real-time-trends")
          public ResponseEntity<List<CryptoTrend>> getRealTimeTrends() {
              List<CryptoTrend> trends = cryptoService.getRealTimeTrends();
              return new ResponseEntity<>(trends, HttpStatus.OK);
          }
      }