@@ -11,44 +11,133 @@ yarn setup
11
11
```
12
12
13
13
# Usage
14
+ add config file ` .api-to-go.yaml ` .
15
+ ``` yaml
16
+ api.github.com :
17
+ - /users/{user}/repos
18
+ ` ` `
19
+ run command.
14
20
` ` ` sh
15
21
cd [your project dir]
16
- api-to-go https://api.github.com/users
17
- # > ...
18
- # > saved: api.github.com/users_sample.json
19
- # > generated: api.github.com/users.go
22
+ api-to-go https://api.github.com/users/github/repos
23
+ # > replaced : /users/github/repos -> /users/{user}/repos -> /users/user/repos
24
+ # > generated: api.github.com/users/user/repos.go
25
+ # > saved: api.github.com/users/user/repos_sample.json
20
26
```
21
-
27
+ check generated files and directories.
22
28
``` sh
23
- tree .
29
+ tree -a .
24
30
# > .
31
+ # > ├── .api-to-go.yaml
25
32
# > └── api.github.com
26
- # > ├── users.go
27
- # > └── users_sample.json
33
+ # > └── users
34
+ # > └── user
35
+ # > ├── repos.go
36
+ # > └── repos_sample.json
28
37
```
29
-
38
+ check generated struct file ` ./api.github.com/users/user/repos.go ` .
30
39
``` go
31
- // ./api.github.com/users.go
32
- package apigithubcom
40
+ package user
33
41
34
- type Users []struct {
35
- Login string ` json:"login"`
36
- ID int ` json:"id"`
37
- NodeID string ` json:"node_id"`
38
- AvatarURL string ` json:"avatar_url"`
39
- GravatarID string ` json:"gravatar_id"`
40
- URL string ` json:"url"`
41
- HTMLURL string ` json:"html_url"`
42
- FollowersURL string ` json:"followers_url"`
43
- FollowingURL string ` json:"following_url"`
44
- GistsURL string ` json:"gists_url"`
45
- StarredURL string ` json:"starred_url"`
46
- SubscriptionsURL string ` json:"subscriptions_url"`
47
- OrganizationsURL string ` json:"organizations_url"`
48
- ReposURL string ` json:"repos_url"`
49
- EventsURL string ` json:"events_url"`
50
- ReceivedEventsURL string ` json:"received_events_url"`
51
- Type string ` json:"type"`
52
- SiteAdmin bool ` json:"site_admin"`
42
+ import " time"
43
+
44
+ type Repos []struct {
45
+ ID int ` json:"id"`
46
+ NodeID string ` json:"node_id"`
47
+ Name string ` json:"name"`
48
+ FullName string ` json:"full_name"`
49
+ Private bool ` json:"private"`
50
+ Owner Owner ` json:"owner"`
51
+ HTMLURL string ` json:"html_url"`
52
+ Description string ` json:"description"`
53
+ Fork bool ` json:"fork"`
54
+ URL string ` json:"url"`
55
+ ForksURL string ` json:"forks_url"`
56
+ KeysURL string ` json:"keys_url"`
57
+ CollaboratorsURL string ` json:"collaborators_url"`
58
+ TeamsURL string ` json:"teams_url"`
59
+ HooksURL string ` json:"hooks_url"`
60
+ IssueEventsURL string ` json:"issue_events_url"`
61
+ EventsURL string ` json:"events_url"`
62
+ AssigneesURL string ` json:"assignees_url"`
63
+ BranchesURL string ` json:"branches_url"`
64
+ TagsURL string ` json:"tags_url"`
65
+ BlobsURL string ` json:"blobs_url"`
66
+ GitTagsURL string ` json:"git_tags_url"`
67
+ GitRefsURL string ` json:"git_refs_url"`
68
+ TreesURL string ` json:"trees_url"`
69
+ StatusesURL string ` json:"statuses_url"`
70
+ LanguagesURL string ` json:"languages_url"`
71
+ StargazersURL string ` json:"stargazers_url"`
72
+ ContributorsURL string ` json:"contributors_url"`
73
+ SubscribersURL string ` json:"subscribers_url"`
74
+ SubscriptionURL string ` json:"subscription_url"`
75
+ CommitsURL string ` json:"commits_url"`
76
+ GitCommitsURL string ` json:"git_commits_url"`
77
+ CommentsURL string ` json:"comments_url"`
78
+ IssueCommentURL string ` json:"issue_comment_url"`
79
+ ContentsURL string ` json:"contents_url"`
80
+ CompareURL string ` json:"compare_url"`
81
+ MergesURL string ` json:"merges_url"`
82
+ ArchiveURL string ` json:"archive_url"`
83
+ DownloadsURL string ` json:"downloads_url"`
84
+ IssuesURL string ` json:"issues_url"`
85
+ PullsURL string ` json:"pulls_url"`
86
+ MilestonesURL string ` json:"milestones_url"`
87
+ NotificationsURL string ` json:"notifications_url"`
88
+ LabelsURL string ` json:"labels_url"`
89
+ ReleasesURL string ` json:"releases_url"`
90
+ DeploymentsURL string ` json:"deployments_url"`
91
+ CreatedAt time.Time ` json:"created_at"`
92
+ UpdatedAt time.Time ` json:"updated_at"`
93
+ PushedAt time.Time ` json:"pushed_at"`
94
+ GitURL string ` json:"git_url"`
95
+ SSHURL string ` json:"ssh_url"`
96
+ CloneURL string ` json:"clone_url"`
97
+ SvnURL string ` json:"svn_url"`
98
+ Homepage interface {} ` json:"homepage"`
99
+ Size int ` json:"size"`
100
+ StargazersCount int ` json:"stargazers_count"`
101
+ WatchersCount int ` json:"watchers_count"`
102
+ Language interface {} ` json:"language"`
103
+ HasIssues bool ` json:"has_issues"`
104
+ HasProjects bool ` json:"has_projects"`
105
+ HasDownloads bool ` json:"has_downloads"`
106
+ HasWiki bool ` json:"has_wiki"`
107
+ HasPages bool ` json:"has_pages"`
108
+ ForksCount int ` json:"forks_count"`
109
+ MirrorURL interface {} ` json:"mirror_url"`
110
+ Archived bool ` json:"archived"`
111
+ Disabled bool ` json:"disabled"`
112
+ OpenIssuesCount int ` json:"open_issues_count"`
113
+ License interface {} ` json:"license"`
114
+ AllowForking bool ` json:"allow_forking"`
115
+ IsTemplate bool ` json:"is_template"`
116
+ Topics []interface {} ` json:"topics"`
117
+ Visibility string ` json:"visibility"`
118
+ Forks int ` json:"forks"`
119
+ OpenIssues int ` json:"open_issues"`
120
+ Watchers int ` json:"watchers"`
121
+ DefaultBranch string ` json:"default_branch"`
122
+ }
123
+ type Owner struct {
124
+ Login string ` json:"login"`
125
+ ID int ` json:"id"`
126
+ NodeID string ` json:"node_id"`
127
+ AvatarURL string ` json:"avatar_url"`
128
+ GravatarID string ` json:"gravatar_id"`
129
+ URL string ` json:"url"`
130
+ HTMLURL string ` json:"html_url"`
131
+ FollowersURL string ` json:"followers_url"`
132
+ FollowingURL string ` json:"following_url"`
133
+ GistsURL string ` json:"gists_url"`
134
+ StarredURL string ` json:"starred_url"`
135
+ SubscriptionsURL string ` json:"subscriptions_url"`
136
+ OrganizationsURL string ` json:"organizations_url"`
137
+ ReposURL string ` json:"repos_url"`
138
+ EventsURL string ` json:"events_url"`
139
+ ReceivedEventsURL string ` json:"received_events_url"`
140
+ Type string ` json:"type"`
141
+ SiteAdmin bool ` json:"site_admin"`
53
142
}
54
143
```
0 commit comments