Creating a RESTful API (Spring-Boot)

This example assumes a working Spring-Boot setup.

This is a basic example on how you could build a REST API directly return data from a scraped website as JSON:

import it.skrape.extract
import it.skrape.selects.elements
import it.skrape.selects.element
import it.skrape.skrape
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class MyController {

    @GetMapping("/user-data")
    fun extractGithubUserData() =
        skrape {
            url = "https://github.com/skrapeit"
            extract {
                MyScrapedData(
                    userName = element(".h-card .p-nickname").text(),
                    repositoryNames = elements("span.repo").map { it.text() }
                )
            }
        }
}

data class MyScrapedData(val userName: String, val repositoryNames: List<String>)

This will return the following JSON as response body when /user-data is getting called:

{
  "userName": "skrapeit",
  "repositoryNames": [
    "skrape.it",
    "skrapeit-docs",
    "skrapeit-ktor-extension",
    "skrapeit-mockmvc-extension",
    "skrapeit-parent"
  ]
}

Last updated