我正在尝试使用react-admin 创建一个管理面板。 我无数次尝试连接我的 api 并响应管理员,但没有任何效果。 HTTP 响应中缺少 Content-Range 标头。虽然我认为我做的一切都是对的(我是这么认为的)。
app.tsx:
import { Admin, Resource } from "react-admin";
import { UserList } from "./users";
import { dataProvider } from "./dataProvider";
import { MyLayout } from './MyLayout';
export const App = () => <Admin dataProvider={dataProvider} layout={MyLayout}>
<Resource name="users" list={UserList} />
</Admin>;
users.tsx:
import { List, Datagrid, TextField, EmailField } from "react-admin";
export const UserList = () => (
<List>
<Datagrid rowClick="edit">
<TextField source="id" />
<TextField source="username" />
<TextField source="first_name" />
<TextField source="last_name" />
<TextField source="position" />
<TextField source="access_level" />
</Datagrid>
</List>
);
GO API:
CORS:
handler := cors.AllowAll().Handler(r)
log.Printf("Server is running on port %s...", port)
log.Fatal(http.ListenAndServe(":"+port, handler))
用户:
func GetUsers(w http.ResponseWriter, r *http.Request) {
var users []api.User
db.DB.Find(&users)
totalResources := len(users)
// Content-Range
w.Header().Set("Content-Range", fmt.Sprintf("items 0-%d/%d", totalResources-1, totalResources))
userResponses := make([]UserResponse, 0)
for _, user := range users {
userResponses = append(userResponses, UserResponse{
ID: user.ID,
Username: user.Username,
FirstName: user.FirstName,
LastName: user.LastName,
Position: user.Position,
AccessLevel: user.AccessLevel,
})
}
respondWithJSON(w, http.StatusOK, userResponses)
}
[]
如果您使用“简单的 REST 客户端”,那么根据文档,它需要稍微不同的标头格式:
'Content-Range', 'users 0-24/324'
// 'users' 是您的资源的名称