Update goclt dart gen: Add scheme config and content-type header (#2987)

Co-authored-by: zhoumingji <zhoumingji@cmsr.chinamobile.com>
master
Snake 2 years ago committed by GitHub
parent a2592a17e9
commit e136deb3a7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -106,6 +106,7 @@ func init() {
dartCmd.Flags().StringVar(&dartgen.VarStringAPI, "api", "", "The api file") dartCmd.Flags().StringVar(&dartgen.VarStringAPI, "api", "", "The api file")
dartCmd.Flags().BoolVar(&dartgen.VarStringLegacy, "legacy", false, "Legacy generator for flutter v1") dartCmd.Flags().BoolVar(&dartgen.VarStringLegacy, "legacy", false, "Legacy generator for flutter v1")
dartCmd.Flags().StringVar(&dartgen.VarStringHostname, "hostname", "", "hostname of the server") dartCmd.Flags().StringVar(&dartgen.VarStringHostname, "hostname", "", "hostname of the server")
dartCmd.Flags().StringVar(&dartgen.VarStringScheme, "scheme", "", "scheme of the server")
docCmd.Flags().StringVar(&docgen.VarStringDir, "dir", "", "The target dir") docCmd.Flags().StringVar(&docgen.VarStringDir, "dir", "", "The target dir")
docCmd.Flags().StringVar(&docgen.VarStringOutput, "o", "", "The output markdown directory") docCmd.Flags().StringVar(&docgen.VarStringOutput, "o", "", "The output markdown directory")

@ -19,6 +19,8 @@ var (
VarStringLegacy bool VarStringLegacy bool
// VarStringHostname defines the hostname. // VarStringHostname defines the hostname.
VarStringHostname string VarStringHostname string
// VarStringSchema defines the scheme.
VarStringScheme string
) )
// DartCommand create dart network request code // DartCommand create dart network request code
@ -27,6 +29,7 @@ func DartCommand(_ *cobra.Command, _ []string) error {
dir := VarStringDir dir := VarStringDir
isLegacy := VarStringLegacy isLegacy := VarStringLegacy
hostname := VarStringHostname hostname := VarStringHostname
scheme := VarStringScheme
if len(apiFile) == 0 { if len(apiFile) == 0 {
return errors.New("missing -api") return errors.New("missing -api")
} }
@ -37,6 +40,10 @@ func DartCommand(_ *cobra.Command, _ []string) error {
fmt.Println("you could use '-hostname' flag to specify your server hostname") fmt.Println("you could use '-hostname' flag to specify your server hostname")
hostname = "go-zero.dev" hostname = "go-zero.dev"
} }
if len(scheme) == 0 {
fmt.Println("you could use '-scheme' flag to specify your server scheme")
scheme = "http"
}
api, err := parser.Parse(apiFile) api, err := parser.Parse(apiFile)
if err != nil { if err != nil {
@ -54,7 +61,7 @@ func DartCommand(_ *cobra.Command, _ []string) error {
api.Info.Title = strings.Replace(apiFile, ".api", "", -1) api.Info.Title = strings.Replace(apiFile, ".api", "", -1)
logx.Must(genData(dir+"data/", api, isLegacy)) logx.Must(genData(dir+"data/", api, isLegacy))
logx.Must(genApi(dir+"api/", api, isLegacy)) logx.Must(genApi(dir+"api/", api, isLegacy))
logx.Must(genVars(dir+"vars/", isLegacy, hostname)) logx.Must(genVars(dir+"vars/", isLegacy, scheme, hostname))
if err := formatDir(dir); err != nil { if err := formatDir(dir); err != nil {
logx.Errorf("failed to format, %v", err) logx.Errorf("failed to format, %v", err)
} }

@ -76,14 +76,14 @@ Future<Tokens?> getTokens() async {
}` }`
) )
func genVars(dir string, isLegacy bool, hostname string) error { func genVars(dir string, isLegacy bool, scheme string, hostname string) error {
err := os.MkdirAll(dir, 0o755) err := os.MkdirAll(dir, 0o755)
if err != nil { if err != nil {
return err return err
} }
if !fileExists(dir + "vars.dart") { if !fileExists(dir + "vars.dart") {
err = ioutil.WriteFile(dir+"vars.dart", []byte(fmt.Sprintf(`const serverHost='%s';`, hostname)), 0o644) err = ioutil.WriteFile(dir+"vars.dart", []byte(fmt.Sprintf(`const serverHost='%s://%s';`, scheme, hostname)), 0o644)
if err != nil { if err != nil {
return err return err
} }

@ -56,12 +56,21 @@ Future _apiRequest(String method, String path, dynamic data,
var client = HttpClient(); var client = HttpClient();
HttpClientRequest r; HttpClientRequest r;
if (method == 'POST') { if (method == 'POST') {
r = await client.postUrl(Uri.parse('https://' + serverHost + path)); r = await client.postUrl(Uri.parse(serverHost + path));
} else { } else {
r = await client.getUrl(Uri.parse('https://' + serverHost + path)); r = await client.getUrl(Uri.parse(serverHost + path));
}
var strData = '';
if (data != null) {
strData = jsonEncode(data);
}
if (method == 'POST') {
r.headers.set('Content-Type', 'application/json; charset=utf-8');
r.headers.set('Content-Length', utf8.encode(strData).length);
} }
r.headers.set('Content-Type', 'application/json; charset=utf-8');
if (tokens != null) { if (tokens != null) {
r.headers.set('Authorization', tokens.accessToken); r.headers.set('Authorization', tokens.accessToken);
} }
@ -70,11 +79,9 @@ Future _apiRequest(String method, String path, dynamic data,
r.headers.set(k, v); r.headers.set(k, v);
}); });
} }
var strData = '';
if (data != null) {
strData = jsonEncode(data);
}
r.write(strData); r.write(strData);
var rp = await r.close(); var rp = await r.close();
var body = await rp.transform(utf8.decoder).join(); var body = await rp.transform(utf8.decoder).join();
print('${rp.statusCode} - $path'); print('${rp.statusCode} - $path');
@ -147,12 +154,19 @@ Future _apiRequest(String method, String path, dynamic data,
var client = HttpClient(); var client = HttpClient();
HttpClientRequest r; HttpClientRequest r;
if (method == 'POST') { if (method == 'POST') {
r = await client.postUrl(Uri.parse('https://' + serverHost + path)); r = await client.postUrl(Uri.parse(serverHost + path));
} else { } else {
r = await client.getUrl(Uri.parse('https://' + serverHost + path)); r = await client.getUrl(Uri.parse(serverHost + path));
} }
r.headers.set('Content-Type', 'application/json; charset=utf-8'); var strData = '';
if (data != null) {
strData = jsonEncode(data);
}
if (method == 'POST') {
r.headers.set('Content-Type', 'application/json; charset=utf-8');
r.headers.set('Content-Length', utf8.encode(strData).length);
}
if (tokens != null) { if (tokens != null) {
r.headers.set('Authorization', tokens.accessToken); r.headers.set('Authorization', tokens.accessToken);
} }
@ -161,10 +175,7 @@ Future _apiRequest(String method, String path, dynamic data,
r.headers.set(k, v); r.headers.set(k, v);
}); });
} }
var strData = '';
if (data != null) {
strData = jsonEncode(data);
}
r.write(strData); r.write(strData);
var rp = await r.close(); var rp = await r.close();
var body = await rp.transform(utf8.decoder).join(); var body = await rp.transform(utf8.decoder).join();

Loading…
Cancel
Save