러스트 플레이그라운드에서 코드를 실행하고, 결과를 가져오는 방법
플레이그라운드 에 접속후, 다음과같이 입력을 해봅니다.
그리고, RUN ▶ 버튼을 눌러보면,
처럼 결과물이 출력되는것을 볼 수 있습니다.
상당히 유용한 기능입니다.
하지만, 우리는 api를 원하며, 플레이그라운드에서는 별다는 api 문서를 제공하지않습니다.
(파이어폭스 기준)
DevTool (Ctrl + Shift + I) -> 네트워크 -> 새로 고침 (Ctrl + R) -> RUN ▶을 누른다면, 다음과같은 결과가 나올것입니다.
많은것들이 있지만, 우리가 사용할것은 execute 부분입니다.
https://play.rust-lang.org/execute 에 POST 방식입니다.
우리는 저 방식대로, 코드를 짜면됩니다.
간단하게 러스트 reqwest 크레이트를 사용하면, 아래의 코드처럼 될것입니다.
let code = r#"
fn main() {
println!("Hello, World!");
}
"#;
let client = reqwest::Client::new();
let format = format!(
"
{}\"channel\":\"stable\",
\"mode\":\"debug\",
\"edition\":\"2018\",
\"crateType\":\"bin\",
\"tests\":false,
\"code\":\"{}\",
\"backtrace\":false{}",
"{\n", code, "\n}"
);
let res = client
.post("https://play.rust-lang.org/execute")
.header("content-type", "application/json")
.body(format.clone())
.send()
.await?;
let json = &json::parse(res.text().await?.as_str())?;channel: stable/beta/nightly
mode: debug/release
edition: 2015/2018/2021
crateType: bin/lib
tests: false/true
code: Rust Code
backtrace: false/true
success: false/true
stdout: 코드의 결과물입니다.
stderr: 컴파일러가 코드를 실행하기전, 출력하는 부분입니다. (오류도 이곳에서 출력됨)



