Yes it will work. However, you are basing your design of a distributed system on the assumption that the data model is very simple and will remain that way. If the application you are building is successful, you can be sure that new requirements will be added and new features will be requested.
Exposing the data layer as you are suggesting, tightly couples your the client applications to the data model, and your use of http makes doing multi request transactions very difficult. I know you said that you do not need to do multi-request transactions. Not today, but maybe next year?
What is the life expectancy of this application? If you say more than a couple of years then I would re-think the idea of exposing the data layer to remote clients. One of the main goals of REST is to de-couple the client and the server application to allow applications to evolve over a long period of time. If you have multiple client applications accessing a distributed service if it is not designed right, it can quickly run into nasty maintenance and versioning issues.
Edit to answer question in comments about client needing to understand model:
You have two different directions you can take regarding how the client can interact with the representation received from the server.
- You can allow the client to have explicit knowledge of the data content contained in the representation. I.e. The client knows that there is a user name and password in certain XML elements. However, if you do this you should return a specific media type, e.g. application/vnd.mycompany.user+xml. You should not use application/xml as that does not tell the client anything about what is in the XML document. If the client were to have the knowledge that "when you go to url X" you get "an Xml document that has contains elements UserName and Password inside an element User" then you have violated the self-descriptive constraint of REST. The impact is that you have coupled the endpoint to the media-type and in effect coupled the client to that endpoint. The intent of the "hypermedia constraint" of REST is to prevent coupling between the client and the endpoints.
- The alternative is to use a more generic media type that is simply intended to provide a client with content to display to the user and offer options to the user to allow the client to take actions. The html media type allows you to do this by providing a markup language that could be used to return the username and password in two div tags. Using the html FORM tag and A tag the client can perform additional operations on that resource. Figuring out how to make accessible all of the possible operations a "user" object might have, in a truly RESTful manner, is tricky and takes quite a bit of experience but the end result is an extremely well decoupled client and server. Look at a the web browser as an example, how often do you need to do a browser update because a web site has changed it's content.
The problem with option number two, is that using just HTML the end-user experience tends to be pretty constrained and that is where Javascript comes in. One of the "optional" REST constraints is the us of code download. Javascript is code that loaded from the server to enable additional behaviour on the client. Unfortunately, in my opinion, it also provides the ability for people to create RESTful web interfaces that return application/xml and then use the javascript to interpret that generic format. This solution works fine for the original developer of the web site that consumes the RESTful API because if the content of the xml file changes then the javascript can be changed and re-downloaded to the browser and all is good. However, for any other third party developer who is accessing this API who is not in control of the application/xml content model, their code becomes completely brittle and will potentially break if the API content changes. Ask anyone who has written any kind of client for Twitter, how many times their application has broken because Twitter changed the content.
By using the first option and giving the content a specific media type, the server developer can introduce a new media-type called application/vnd.mycompany.userV2+xml and using content negotiation the existing clients can still receive the original media type and new clients can be built to consume the new media type. The url remains the same, bookmarks are not broken, because the endpoint and the mediatype are not coupled.
If you see API documentation that provides a list of Urls and the content that is returned from those urls then chances are those developers just don't get REST and will not get the benefits that a RESTful interface provides. Ironically though, it is not those developers that will suffer the most, it is the 3rd parties attempting to interface with the API that will suffer!