This is the interface for an HTTP Server capability with the contract ID wasmcloud:httpserver
This folder contains
- Model definition for wasmcloud:httpserver
- Generated documentation (in HTML)
- Generated Rust library (in Rust)
Any Rust actor or capability provider using wasmcloud:httpserver
should rely upon this library. A capability provider implements the trait HttpServerReceiver
.
The following is a list of implementations of the wasmcloud:httpserver
contract. Feel free to submit a PR adding your implementation if you have a community/open source version.
| Name | Vendor | Description | | :--- | :---: | :--- | | HTTPServer | wasmCloud | wasmCloud HTTP Server implementation using the highly scalable warp web server.
Implementing the HttpServer.HandleRequest
operation
```rust
use wasmbusrpc::actor::prelude::*;
use wasmcloudinterface_httpserver::{HttpRequest, HttpResponse, HttpServer, HttpServerReceiver};
struct HelloActor {}
impl HttpServer for HelloActor {
async fn handlerequest(&self, _ctx: &Context, _req: &HttpRequest) -> RpcResult
Implementing the HttpServer.HandleRequest
operation
```go
import (
"github.com/wasmcloud/actor-tinygo"
httpserver "github.com/wasmcloud/interfaces/httpserver/tinygo"
)
func main() { me := Actor{}
actor.RegisterHandlers(httpserver.HttpServerHandler(&me))
}
type Actor struct {}
func (e Actor) HandleRequest(ctx *actor.Context, req httpserver.HttpRequest) (httpserver.HttpResponse, error) { r := httpserver.HttpResponse{ StatusCode: 200, Header: make(httpserver.HeaderMap, 0), Body: []byte("hello world"), } return &r, nil } ```