kite
kite copied to clipboard
examples: state explicitly what is required to use Kontrol API
I do every process in tutorial.
But it raises "No kontrol URL given in config"
What should I do to figure it out?
@Takeoffyoung In order to use Kontrol API you need to configure its endpoint first, e.g.
k := kite.New("name", "1.0.0")
k.Config.KontrolURL = "http://example.com/kontrol/kite"
Next problem you may encounter is that you'd need to provide also (*Config).KiteKey
in order to authenticate to Kontrol.
Looking at the examples I agree it is not clear, they assume (*config.Config).KontrolURL is either read from ~/.kite/kite.key or from environment. In case both places do not have it set, you can get an error as the one you're getting.
This needs to be improved.
Year, I've configure the environment variables like KONTROL_USERNAME
, KONTROL_URL
...
And do kontrol -initial
, get right result of kitectl showkey
.
But in server endpoint, k.Config.KontrolURL
is empty
Could you tell me why?
Which step makes it wrong?
@Takeoffyoung Can you show me your code just to confirm?
package main
import (
"github.com/koding/kite"
"net/url"
"fmt"
)
func main() {
k := kite.New("first", "1.0.0")
k.Config.Port = 6000
fmt.Println(k.Config.KontrolURL)
k.HandleFunc("square", func(r *kite.Request) (interface{}, error) {
a := r.Args.One().MustFloat64()
return a * a, nil
})
k.Register(&url.URL{Scheme: "http", Host: "localhost:6000/kite"})
k.Run()
}
It does not read configuration from neither environment variables nor ~/kite/kite.key .
Above all.
@Takeoffyoung kite.New()
uses default configuration, it does not read kite.key nor environment.
Your code needs config.Get()
or config.MustGet()
for that, like this:
https://github.com/koding/kite/blob/master/examples/math-register/math-register.go#L29
Oh.... Thx very much.
huh... Maybe I've figured it out, but I am trapped in another trouble.
I am trying it solve it by myself. Thank you.