refactor: add restful api component